在使用CxImage显示gif文件时,发现CxImage解一个299帧的gif动画,在debug的时候花了好几时秒,
CxImage在处理gif时效率太低了。
在网上搜索了一些,支持比较强的图像库:
imageMagick--非常强大,在MFC中不好用,要把图片显示到窗口非常麻烦,至少目前没有发现在Windows窗口中显示的方法,还得加一堆乱七八糟的dll。
还是DevIL比较好使一点,感觉DevIL封装的不是很好,全局变量太多,多线程操作极不安全。用C++在封装一下,可能就好使一点。
附:
DevIL Feature
List
Supports loading of:
- .bmp
- .cut
- .dcx
- .dds
- .ico
- .gif
- .jpg
- .lbm
- .lif
- .mdl
- .pcd
- .pcx
- .pic
- .png
- .pnm
- .psd
- .psp
- .raw
- .sgi
- .tga
- .tif
- .wal
- .act
- .pal
- .hdr
- Doom
graphics
|
Supports saving of:
- .bmp
- .dds
- .jpg
- .pcx
- .png
- .pnm
- .raw
- .sgi
- .tga
- .tif
- .pal
- .hdr
|
Library Features
- Portable,
supports Windows, Mac OS X and *nix.
- OpenGL-style
syntax.
- Use of
image names instead of ugly pointers.
- Loading
from files, file streams or memory "lumps".
- Direct
access to data through ilGetData() and ilSetData().
- Support
for luminance, rgb(a), bgr(a) and colour-indexed images.
- Support
for 3 different numbers of bits per channel.
- Conversion
between all formats and datatypes (including palettes).
- User-defined
automatic conversions if desired when loading images.
- Automatic
conversion when saving images if needed.
- Automatic
conversion of colour-indexed images to truecolour images if desired.
- Controllable
compression when saving.
- Maintains
a state stack that can be pushed and popped.
- Full
support for 3d texture volumes (3d images).
- Validation
of images.
- Support
for layers.
- Support
for mipmaps.
- Support
for animations.
- User-specified
clear colour.
- Can load
a default image if loading fails.
- User-specified
hints.
- Use of
key colours.
- Support
for overlaying an image on top of another.
- Allows
the user to specify their own loading and saving callbacks, even
overriding the default ones.
- Support
for user-specified read and write functions.
- Delphi support.
- Visual
Basic support.
- Linux
support.
- Can pick
and choose which features will be used to create smaller dlls.
- Choose
whether to use the Intel Jpeg Library or libjpeg.
- A whole
host of effects and filters to apply to images, such as embossing and edge
detection.
- Images
can be resized or even be put on a larger background (enlarged canvas).
- OpenGL,
Allegro, Windows GDI and DirectX API support.