Skia Graphics Library
- skia
.googlesource .com /skia
![編輯維基數據鏈接](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png)
Skia Graphics Library(SGL)是一個由C++編寫的開放原始碼圖形庫,最初由Skia公司開發,被Google收購後以New BSD License許可下開源。
Skia公司所開發的第一個產品就是Skia Graphics Library,能在低端裝置如手機上呈現高品質的2D圖形。截至2017年 (2017-Missing required parameter 1=month!)[update],它已被應用於Android、Google Chrome、Chrome OS、Chromium OS、Mozilla Firefox、Firefox OS以及Sublime Text。
2012年时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实现中,对JPG压缩处理算法改写来代替调用libjpeg-turbo,实现了一个低精度的YUV转换为RGB的算法,但该改写算法中除法取整的方式不合理,不仅每次压缩后画质劣化更严重,随着误差逐步累积,还会导致图片会越来越偏向绿色。最终该缺陷在2016年4月得到修复,修改回直接使用libjpeg-turbo的调用。[2]而作为Android基础库的一部分,该修复也被认为预计于Android 7中修复。
参见
- cairo
- Direct2D
- OpenVG
- Starling Framework(英语:Starling Framework)
- Anti-Grain Geometry(英语:Anti-Grain Geometry)
参考资料
外部链接
- 官方网站
- YouTube上的Skia Path Ops : High Performance Set Operations for Geometry
- http://www.slideshare.net/snailee/skia-freetype-android-2d-graphics-essentials(页面存档备份,存于互联网档案馆)