2011-04-22 49 views
2

嗨,Android SKIA图像解码

我目前正在研究Android解码和图像文件。当我检查代码时,它似乎就是在调用SKIA库。但是,我怎么知道android/skia支持的图像文件格式是以源代码为基础的?

我不是编程方面的专家,所以我仍然试图理解C++和Java语言。

我现在丢失在BitmapFactory.cpp(JNI文件)内的SkImageDecoder* decoder = SkImageDecoder::Factory(stream);SkImageDecoder::Factory(stream)似乎是一个模板。

任何人都可以解释我SKImageDecoder::Factory()里面发生了什么?任何反馈将不胜感激。

谢谢
artsylar

回答

1

通过查看Android的源代码,我认为支持以下图像格式。 ICO(Windows ICON图像格式),BMP,JPEG,WBMP,GIF和PNG。

如果我错了,请纠正我。谢谢。

0

PNG,JPEG和GIF是支持的格式。 Android上使用的主要格式是PNG和JPEG。

+0

感谢您的回复。你知道在源代码中的Android在检查,如果文件格式是否支持?我想这是在'SkImageDecoder :: Factory(stream)'中完成的;'在BitmapFactory.cpp(JNI)中。但我仍然无法确定它的具体做法。 – artsylar 2011-04-22 03:50:13

+0

我在SKIA库中找到了ff类 SkFPDFEMBImageDecoder // FPDFEMB SkBMPImageDecoder // BMP文件 SkGIFImageDecoder // GIF文件 SkICOImageDecoder // ICO文件? SkJPEGImageDecoder //基线JPEG格式 SkPNGImageDecoder // PNG SkPVJPEGImageDecoder //渐进JPEG格式? SkWBMPImageDecoder //无线应用协议位图格式 – artsylar 2011-04-22 06:43:39

+0

只是为了确认如果机器人使用上面的类,我试图显示有效的ICO文件(“位图BMAP = BitmapFactory.decodeFile(‘/ SD卡/ vlc.ico’);”)并在仿真器中正确显示。 – artsylar 2011-04-22 08:06:26

1

在Skia的/包括/图像/ SkImageDecoder.h文件,存在通过Skia的支持的图像列表解码:根据

enum Format { 
    kUnknown_Format, 
    kBMP_Format, 
    kGIF_Format, 
    kICO_Format, 
    kJPEG_Format, 
    kPNG_Format, 
    kWBMP_Format, 
    kWEBP_Format, 

    kLastKnownFormat = kWEBP_Format 
}; 

在SkImageDecoder ::厂(流)函数,它将一个新译码器实例分析Stream的头部。