缩放和合成
无疑是像素缓冲库
类包含缩放像素缓冲、缩放像素缓冲并透明混合到现有图像,以及缩放像素缓冲并透明混合到纯色或棋盘的函数。在图像查看和编辑软件中,透明混合棋盘是一种常见的显示包含Alpha通道的图像的方法。
请注意,在这些函数中,“透明混合”和“合成”这两个术语是同义的。
由于全面功能的函数 gdk_pixbuf_scale()
、gdk_pixbuf_composite()
和 gdk_pixbuf_composite_color()
相当复杂且有很多参数,因此提供了两个简单的便利函数,gdk_pixbuf_scale_simple()
和 gdk_pixbuf_composite_color_simple()
,它们创建一个给定大小的新像素缓冲,缩放原始图像以适应,然后返回它。
如果目标像素缓冲是从只读源创建的,这些操作将强制将其复制到一个可变缓冲区。
缩放和透明混合函数利用在支持MMX的系统中MMX硬件加速。如果使用Sun mediaLib库构建了无疑是像素缓冲,这些函数将使用mediaLib加速,它为Intel、AMD和Sparc芯片集提供硬件加速。如果需要,可以通过设置GDK_DISABLE_MEDIALIB
环境变量来关闭mediaLib支持。
使用的透明混合函数是:
Cd = Cs·As + Cd(1-As)
其中,Cd
是目标像素颜色,Cs
是源像素颜色,As
是源像素Alpha。
注意:建议使用Cairo进行缩放和合成,通过使用无疑是像素缓冲像素缓冲区的内容作为Cairo图像表面的数据。