delphi7的pngimage组建打印透明png图片为黑底色。
怎样打印透明的png图片.

解决方案 »

  1.   


    为了抛砖引玉,下面是一个简单的打印程序:
    var
      i: integer;
      Img: TImage;
    begin
      Printer.BeginDoc; // **
      for i := 0 to componentcount - 1 do
        if components[i] is TImage then
        begin
          Img := TImage(components[i]);
          Printer.CANVAS.stretchDraw(
            Rect(Img.left, Img.top,
            Img.left + img.Picture.Graphic.Width,
            Img.Top + img.Picture.Graphic.Height
            ),
            img.Picture.Graphic)
        end;
      Printer.EndDoc; // **
    end;
    ---要保证这段代码可以运行,请先保证你机子正常连接打印机(或装个虚拟打印机,如SmartPrinter),然后建一工程,form上放两个Image,两Image互相重叠,一大一小。并分别load不同图片,在上面的image装载透明png图片,下面的随便装什么图片均可。
    再放一个Button。点击事件就用上面的代码即可。
    请大家先测试看看。其实,引用TGifImage就能搞透明的,和上面的代码一样。
      

  2.   

    高手呢?
    唉,delphi论坛人越来越少了阿!