Skia Graphics Library

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Skia Graphics Engine
原作者Skia公司
開發者Google
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    编程语言C++
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      类型圖形庫
      许可协议New BSD License
      网站skia.org

      Skia Graphics Library(SGL)是一個由C++編寫的開放原始碼圖形庫,最初由Skia公司開發,被Google收購後以New BSD License許可下開源。

      Skia公司所開發的第一個產品就是Skia Graphics Library,能在低端裝置如手機上呈現高品質的2D圖形。截至2017年 (2017-Missing required parameter 1=month!),它已被應用於AndroidGoogle ChromeChrome OSChromium OSMozilla FirefoxFirefox 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中修复。

      参见[编辑]

      参考资料[编辑]

      1. ^ android 的图形引擎 skia. [2011-07-05]. (原始内容存档于2012-08-04). 
      2. ^ Use libjpeg-turbo for YUV->RGB conversion in jpeg encoder · google/skia@c7d01d3. GitHub. [2017-03-13]. (原始内容存档于2019-02-17) (English). 

      外部链接[编辑]