Skia Graphics Library
外观

原作者 | Skia公司 |
---|---|
開發者 | |
源代码库 | |
编程语言 | C++ |
类型 | 圖形庫 |
许可协议 | New BSD License |
网站 | code |
Skia Graphics Library(SGL)是一個由C++編寫的開放原始碼圖形庫,最初由Skia公司開發,被Google收購後以New BSD License許可下開源。
Skia公司所開發的第一個產品就是Skia Graphics Library,能在低端裝置如手機上呈現高品質的2D圖形。截至2017年[update],它已被應用於Mozilla Firefox、Google Chrome、Chrome OS、Chromium OS、Sublime Text、Android以及Firefox OS。
Skia有大概80,000行程式碼,以C++開發而成[1]。
範例
Skia主要的類別是SkCanvas,所有的繪圖功能都是實作於此類別。以下是SGL簡單的程式碼:
SkCanvas* can = GraphicsJNI::getNativeCanvas(...); SkPaint paint; paint.setARGB(255, 0, 0, 255); can->drawText("Hello, world", 12, 10, 10, paint);
绿化缺陷
Google在Android的Skia实现中,为了优化运行,对libjpeg-turbo的代码重写,实现一个低精度的YUV转换为RGB的算法,但是反而导致精度损失在图片每次重新压缩中更严重,导致图片会越来越偏向绿色并画质更为劣化。最终该失误在2016年4月修复,修改回直接使用libjpeg-turbo的调用。[2]而作为Android基础库的一部分,该修复也被认为预计于Android 7中修复。[3]
参见
参考资料
- ^ android 的图形引擎 skia
- ^ Use libjpeg-turbo for YUV->RGB conversion in jpeg encoder · google/skia@c7d01d3. GitHub. [2017-03-13] (英语).
- ^ 为什么图片反复压缩后会普遍会变绿而不是其他颜色? - 互联网 - 知乎. www.zhihu.com. [2017-03-13] (中文(中国大陆)).