我有两个不同的TPngObject SRC和DST。 SRC已分配PNG图形。
我的代码:
dst := TpngImage.createblank(COLOR_RGB, 16, 900, 60);
src.Assign(Image2.Picture.Graphic);
但我需要将src的某些部分复制到dst。我尝试在画布上复制和绘制,但不能使用透明。
答案 0 :(得分:2)
我认为您应该可以使用AlphaBlend
功能执行此操作。您使用{SRC/DEST}.Canvas.Handle
作为HDC
参数。
我希望您也可以使用BitBlt
实现此目标。
我仍然对TPNGImage实例的TransparencyMode
属性的值感到好奇。
答案 1 :(得分:1)
我不使用TPNGImage,但我会对此进行一次尝试......是否支持Pixels属性或Scanline?如果是这样,您只能复制所需的像素,手动设置r,g,b和值。我用pf32bit位图做了很多。正如您所注意到的那样,绘制它不会保留透明度。您必须手动设置Alpha值。
如果TPNGImage不支持像素或扫描线,您可以先将png转换为位图并按此方式进行。