Skia Graphics Library(SGL)是一个由C++编写的开放源代码图形库,最初由Skia公司开发,被Google收购后以New BSD License许可下开源。
Skia公司所开发的第一个产品就是Skia Graphics Library,能在低端设备如手机上呈现高质量的2D图形。截至2017年[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中修复。
参见
参考资料
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.