C/C++库将PNG(包括Alpha)与原始ARGB缓冲区混合

前端之家收集整理的这篇文章主要介绍了C/C++库将PNG(包括Alpha)与原始ARGB缓冲区混合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个带编码alpha通道的PNG,我希望将其与原始ARGB图像混合在存储器中进行交错存储. PNG具有与图像缓冲器不同的分辨率,并且需要相应地调整大小(优选地使用插值).

虽然我很欣赏它并不是特别难以手工完成(一旦将PNG图像加载到适当的结构中),我希望找到一个好的开源图像处理库来为我完成这项工作.

我看了几个包括

> libGD
> libPNG
> openCV
> ImageMagick
> CxImage
>英特尔集成性能基元(IPP)

但似乎没有一个能够处理加载PNG,调整PNG图像大小,将alpha混合到图像数据和处理ARGB格式(与RGBA相反)的所有要求.

性能是一个问题,因此减少对图像数据的传递将是有益的,尤其是能够将ARGB数据保持在适当的位置而不是必须将其复制到不同的数据结构以执行混合.

有没有人知道任何可以提供帮助的图书馆,或者我是否错过了上述某项内容

最佳答案
您可以使用SDL_gfxSDL_Image通过SDL执行此操作.

// load images using SDL_Image
SDL_Surface *image1,image2;
image1=IMG_Load("front.png");
image2=IMG_Load("back.png");

// blit images onto a surface using SDL_gfx
SDL_gfxBlitRGBA ( image1,rect,screen,rect ); 
SDL_gfxBlitRGBA ( image2,rect );

猜你在找的Linux相关文章