读书人

绘图的时分PNG底色是黑色为什么呢

发布时间: 2013-03-14 10:33:15 作者: rapoo

绘图的时候,PNG底色是黑色,为什么呢
第一副图是用bitblt的参数为scrcopy,第二幅图bitblp的参数为scrand,出现了颜色失真,我想要画图透明的PNG图片,该怎么弄呢?如第三幅图所示,无论窗体是什么颜色
绘图的时分,PNG底色是黑色,为什么呢
绘图的时分,PNG底色是黑色,为什么呢
绘图的时分,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;

[解决办法]

PerformEraseBackground(Self, MemDC);

读书人网 >.NET

热点推荐