我有两个 png 图像,第一个图像的宽度为 2247,高度1 190,第二个图像的宽度为 155,高度2 36。我不想将第二个图像(src)放置在第一个图像(dest)的中心。我创建了两者的像素缓冲区并使用 gdk_pixbuf_composite 如下。
gdk_pixbuf_composite( srcpixbuf, dstpixbuf, 1000, 100, width2, height2, 0, 0, 1, 1, GDK_INTERP_BILINEAR, 255);
我在第一张图像上得到了一个宽度为 2 且高度为 2 的模糊窗口。
如果我将 width2 和 height2 替换为 1.0,那么我不会在 dstimage 上获取 srcimage。我哪里出错了?
最佳答案
gdk_pixbuf_composite( srcpixbuf, dstpixbuf, 1000, 100, 宽度2, 高度2, 1000, 100, 1, 1, GDK_INTERP_BILINEAR, 255);
这解决了。对offset参数的理解错误。基本上会创建一个中间缩放图像,并且仅合成由目标宽度、高度表示的部分。因此,在我的例子中,我们需要将整个未缩放的图像移动到目标偏移量,这是由 offset 参数完成的。
关于c - gdk_pixbuf_composite用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227298/