uses GDIPOBJ, GDIPAPI;procedure TForm1.FormPaint(Sender: TObject);const ImgPath = 'c:\temp\test.bmp';var img: TGPImage; bit: TBitmap; g: TGPGraphics;begin bit := TBitmap.Create; bit.LoadFromFile(ImgPath); {因为 TBitmap 操作流特别方便, 这里就没有演示} img := TGPBitmap.Create(bit.Handle, bit.Palette); g := TGPGraphics.Create(Canvas.Handle); g.DrawImage(img, 0, 0); g.Free; bit.Free; img.Free;end;
uses GDIPOBJ, GDIPAPI;procedure TForm1.FormPaint(Sender: TObject);const ImgPath = 'c:\temp\test.bmp';var img: TGPImage; MemStream: TMemoryStream; MyIStream: TStreamAdapter; g: TGPGraphics;begin MemStream := TMemoryStream.Create; MemStream.LoadFromFile(ImgPath); MyIStream := TStreamAdapter.Create(MemStream); img := TGPImage.Create(MyIStream); g := TGPGraphics.Create(Canvas.Handle); g.DrawImage(img, 0, 0); g.Free; img.Free; MemStream.Free; MyIStream := nil; {注意这里}end;
uses GDIPOBJ, GDIPAPI, ActiveX;procedure TForm1.FormPaint(Sender: TObject);const ImgPath = 'c:\temp\test.bmp';var img: TGPImage; MemStream: TMemoryStream; MyIStream: IStream; {这里和上面不同} g: TGPGraphics;begin MemStream := TMemoryStream.Create; MemStream.LoadFromFile(ImgPath); MyIStream := TStreamAdapter.Create(MemStream); img := TGPImage.Create(MyIStream); g := TGPGraphics.Create(Canvas.Handle); g.DrawImage(img, 0, 0); g.Free; img.Free; MemStream.Free; MyIStream := nil;end;
uses GDIPOBJ, GDIPAPI;procedure TForm1.FormPaint(Sender: TObject);const ImgPath = 'c:\temp\test.bmp';var img: TGPImage; MemStream: TMemoryStream; MyIStream: TStreamAdapter; g: TGPGraphics;begin MemStream := TMemoryStream.Create; MemStream.LoadFromFile(ImgPath); MyIStream := TStreamAdapter.Create(MemStream, soOwned); img := TGPImage.Create(MyIStream); g := TGPGraphics.Create(Canvas.Handle); g.DrawImage(img, 0, 0); g.Free; img.Free; MemStream.Free;// MyIStream := nil; {此时如果有这句会出错}end;
联系客服