webkit中图片的解码过程

从loader下载图片后,在ResouceLoader中会创建一个SharedBuffer保存图片员数据,

然后把SharedBuffer传给CachedImage,其多重继承于CachedResource和ImageObserver,

然后CachedImage传给成员BitMapImage,其继承于Image,用于在GraphicsContext中显示,

Image中也会引用SharedBuffer,并且也引用CachedImage,

然后BitMapImage传给成员ImageSource,其成员NativeImageSourcePtr是个decoder,

在除了CG和QT平台外都是用的ImageDecoder,

ImageDecoder会根据数据头来判断,图片是哪个类型的,如JPG,PNG,GIF,BMP等

其有两个比较重要的成员,一个是引用SharedBuffer,一个是RGBA32Buffer

每种图片类型都有自己的decoder,都是继承于ImageDecoder,

如JPEGImageDecoder,PNGImageDecoder等

但是大部分解码工作,调用解码库的部分都是在其相应的Reader中,

如JPEGImageReader,PNGImageReader等

猜你喜欢

转载自blog.csdn.net/wzm012/article/details/6307514