第一副图是用bitblt的参数为scrcopy,第二幅图bitblp的参数为scrand,出现了颜色失真,我想要画图透明的PNG图片,该怎么弄呢?如第三幅图所示,无论窗体是什么颜色
procedure TForm1.btn1Click(Sender: TObject);
var
  DC,MemDC:HDC;
  MemBitMap,OldBitMap:HBITMAP ;
  GPGraph:TGPGraphics ;
  GaugeImg:TGPImage ;
  procedure DrawImage ;
  begin
    DC:=GetDC(Self.Handle);
    MemDC :=CreateCompatibleDC(DC);
    MemBitMap:=CreateCompatibleBitmap(DC,246,157);
    OldBitMap :=SelectObject(MemDC,MemBitMap);
    GPGraph:= TGPGraphics.Create(MemDC);
    try
      GaugeImg :=TGPImage.Create(WideString(ExtractFilePath(ParamStr(0))+'Images\guage.png'));
      GPGraph.DrawImage(GaugeImg,0,0,GaugeImg.GetWidth,GaugeImg.GetHeight );
      BitBlt(DC, 0, 0, 246, 157, MemDC, 0, 0, SRCCOPY);
    finally
       GaugeImg.Free ;
       SelectObject(MemDC,OldBitMap);
       DeleteDC(MemDC);
       DeleteObject(MemBitMap);
       ReleaseDC(Self.Handle,DC );
    end;
  end;
begin
   DrawImage ;
end;