这正是FRG("Fast Read Graphics" or "Fast Resource Graphics")的设计目的;FRG的设计目的不是为了增加一种通用的图像交换格式(google的webp到现在都很难做到); 它只完成它的设计目标所要求的事,它不是面向最终用户的,它应该只存在于发布包的资源里;
FRG是一种优化从磁盘加载和解码到显示需要的时间的图像文件格式;(性能测试: http://blog.csdn.net/housisong/article/details/9071113 );
FRG支持无损压缩,也支持有质量损失的压缩,支持32bitARGB颜色(当前的实现Alpha通道始终无损压缩); FRG的使用场景: 需要为资源图像文件减少大小,又要求能够快速解码显示,编码好的文件一般随应用程序发布,而不太在意编码时的时间和内存空间占用;
试试FRG,让你的游戏和应用加载不再需要用户等待!
图像文件格式和其文件大小(无损情况下):
FRG有损压缩下的文件:
frg(90 quality)(0 size): 102,541 Bytes frg(80 quality)(0 size): 66,659 Bytes
frg(75 quality)(0 size): 40,982 Bytes
(更多压缩质量展示:http://blog.csdn.net/housisong/article/details/9068535 )
演示程序和源代码:
演示程序:
我提供了windows\macosx\linux系统下的命令行程序,(我没有发布macosx\linux下程序的经验,本机上试过,但不知道能否在别的电脑上执行;) 程序提供了png和frg之间的相互转换功能(注意不要把你的png图片覆盖了)。
演示程序下载: https://github.com/sisong/png2frg_app/archive/master.zip
FRG源代码:
FRG使用非常自由的MIT开源授权协议;
项目地址: https://github.com/sisong/libfrg
欢迎使用和给该项目贡献你的代码!
(编码技术介绍:http://blog.csdn.net/housisong/article/details/9078301 )
(有些有趣的特性支持也在进一步考虑中: 比如一种更友好的内存或显存中的压缩格式\更好的编码质量和大小控制能力\更多输出颜色格式的直接支持?\新的最终用户级编码器\支持感兴趣区域使用更高质量参数\等)