加载PNG -> 画到Bitmap1.Canvas -> Bitmap1 画到窗体Canvas上
请问如何在这个过程中保持PNG的透明?
因项目流程限制,不能把PNG直接画到窗体上,也不能使用GpBitmap之类,我目前只是用TPngObject加载PNG
9 个解决方案
#1
不用Canvas 画,建个画刷就可以了呀。TGpImage里面有演示源码。
#2
不能用TGpImage哦
#3
画到Bitmap1.Canvas 时就只有一层图了,无解。。。
要从PNG到BITMAP时入手
要从PNG到BITMAP时入手
#4
bitmap1.transpartnecolor:=.....
#5
回3楼:
这么说不用高级点的GDI+之类的技术无解了是么?
回4楼:
这个设定没用
TBitmap默认的透明色是左下角颜色,不设置TranslateColor也好,手动设置也好,转过来的PNG都透不了明……
用PNG的主要原因是BMP体积太大了……
这么说不用高级点的GDI+之类的技术无解了是么?
回4楼:
这个设定没用
TBitmap默认的透明色是左下角颜色,不设置TranslateColor也好,手动设置也好,转过来的PNG都透不了明……
用PNG的主要原因是BMP体积太大了……
#6
为什么非得不用GDI+呢?
#7
32位BitMap的话有透明通道.
Tbitmap.transpartnecolor也可以指定透明色
Tbitmap.transpartnecolor也可以指定透明色
#8
转成BMP,Tbitmap设置透明就可以了。
#9
我已经解决了。找来PNGImage的帮助看了下,原来很简单
Bitmap.Assign(Png)
不用Draw,直接Assign就行了,可能它在这个过程中作了转化
时间忙,没顾得上研究这个东西。感谢各位回复,来者有分。
Bitmap.Assign(Png)
不用Draw,直接Assign就行了,可能它在这个过程中作了转化
时间忙,没顾得上研究这个东西。感谢各位回复,来者有分。
#1
不用Canvas 画,建个画刷就可以了呀。TGpImage里面有演示源码。
#2
不能用TGpImage哦
#3
画到Bitmap1.Canvas 时就只有一层图了,无解。。。
要从PNG到BITMAP时入手
要从PNG到BITMAP时入手
#4
bitmap1.transpartnecolor:=.....
#5
回3楼:
这么说不用高级点的GDI+之类的技术无解了是么?
回4楼:
这个设定没用
TBitmap默认的透明色是左下角颜色,不设置TranslateColor也好,手动设置也好,转过来的PNG都透不了明……
用PNG的主要原因是BMP体积太大了……
这么说不用高级点的GDI+之类的技术无解了是么?
回4楼:
这个设定没用
TBitmap默认的透明色是左下角颜色,不设置TranslateColor也好,手动设置也好,转过来的PNG都透不了明……
用PNG的主要原因是BMP体积太大了……
#6
为什么非得不用GDI+呢?
#7
32位BitMap的话有透明通道.
Tbitmap.transpartnecolor也可以指定透明色
Tbitmap.transpartnecolor也可以指定透明色
#8
转成BMP,Tbitmap设置透明就可以了。
#9
我已经解决了。找来PNGImage的帮助看了下,原来很简单
Bitmap.Assign(Png)
不用Draw,直接Assign就行了,可能它在这个过程中作了转化
时间忙,没顾得上研究这个东西。感谢各位回复,来者有分。
Bitmap.Assign(Png)
不用Draw,直接Assign就行了,可能它在这个过程中作了转化
时间忙,没顾得上研究这个东西。感谢各位回复,来者有分。