如下流程:加载PNG -> 画到Bitmap1.Canvas -> Bitmap1 画到窗体Canvas上请问如何在这个过程中保持PNG的透明?因项目流程限制,不能把PNG直接画到窗体上,也不能使用GpBitmap之类,我目前只是用TPngObject加载PNG

解决方案 »

  1.   

    不用Canvas 画,建个画刷就可以了呀。TGpImage里面有演示源码。
      

  2.   

    画到Bitmap1.Canvas 时就只有一层图了,无解
    要从PNG到BITMAP时入手
      

  3.   

    回3楼:
      这么说不用高级点的GDI+之类的技术无解了是么?回4楼:
      这个设定没用
      TBitmap默认的透明色是左下角颜色,不设置TranslateColor也好,手动设置也好,转过来的PNG都透不了明……用PNG的主要原因是BMP体积太大了……
      

  4.   

    32位BitMap的话有透明通道.
    Tbitmap.transpartnecolor也可以指定透明色
      

  5.   

    转成BMP,Tbitmap设置透明就可以了。
      

  6.   

    我已经解决了。找来PNGImage的帮助看了下,原来很简单
    Bitmap.Assign(Png) 
    不用Draw,直接Assign就行了,可能它在这个过程中作了转化时间忙,没顾得上研究这个东西。感谢各位回复,来者有分。