//用 Bitmap 显示图像 var g:TGPGraphics; bit:TGPBitmap; begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); bit:=TGPBitmap.Create('d:\mm.jpg'); g.DrawImage(bit,11,11); {没有指定宽高,默认大小可能跟分辨率有关} g.DrawImage(bit,250,11,bit.GetWidth,bit.GetHeight);{1:1} g.DrawImage(bit,11,210,0.5*bit.GetWidth,0.5*bit.GetHeight);{2:1} bit.Free; g.Free; end;
//复制像素 var g:TGPGraphics; bit1,bit2:TGPBitmap; pixh,pixw,width,height:Integer; color:TGPColor; begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); bit1:=TGPBitmap.Create('d:\mm.jpg'); width:=bit1.GetWidth; height:=bit1.GetHeight; bit2:=TGPBitmap.Create(width,height); for pixh := 0 to height - 1 do //纵向像素逐个复制 begin for pixw := 0 to width - 1 do //横向像素逐个复制 begin bit1.GetPixel(pixw,pixh,color); bit2.SetPixel(pixw,pixh,color); end; end; g.DrawImage(bit1,0,0,width,height); g.DrawImage(bit2,width + 10,0,width,height); bit1.Free; bit2.Free; g.Free;
//横向翻转 var g:TGPGraphics; bit1,bit2:TGPBitmap; pixw,pixh,width,height:Integer; color:TGPColor; begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); bit1:=TGPBitmap.Create('d:\mm.jpg'); width:=bit1.GetWidth; height:=bit1.GetHeight; bit2:=TGPBitmap.Create(width,height); for pixh := 0 to height - 1 do begin for pixw := 0 to width - 1 do begin bit1.GetPixel(pixw,pixh,color); bit2.SetPixel((width - 1) - pixw,pixh,color); {(width - 1) - pixw} end; end; g.DrawImage(bit1,0,0,width,height); g.DrawImage(bit2,width + 10,0,width,height); bit1.Free; bit2.Free; g.Free; end;
//纵向翻转 var g:TGPGraphics; bit1,bit2:TGPBitmap; pixw,pixh,width,height:Integer; color:TGPColor; begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); bit1:=TGPBitmap.Create('d:\mm.jpg'); width:=bit1.GetWidth; height:=bit1.GetHeight; bit2:=TGPBitmap.Create(width,height); for pixh := 0 to height - 1 do begin for pixw := 0 to width - 1 do begin bit1.GetPixel(pixw,pixh,color); bit2.SetPixel(pixw,(height - 1) - pixh,color); {(height - 1) - pixh} end; end; g.DrawImage(bit1,0,0,width,height); g.DrawImage(bit2,width + 10,0,width,height); bit1.Free; bit2.Free; g.Free; end;
//透明度渐变 var g:TGPGraphics; bit1,bit2:TGPBitmap; pixw,pixh,width,height:Integer; color:TGPColor; begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); bit1:=TGPBitmap.Create('d:\mm.jpg'); width:=bit1.GetWidth; height:=bit1.GetHeight; bit2:=TGPBitmap.Create(width,height); for pixh := 0 to height - 1 do begin for pixw := 0 to width - 1 do begin bit1.GetPixel(pixw,pixh,color); color:=MakeColor(255*pixw div width,GetRed(color),GetGreen(color),GetBlue(color)); bit2.SetPixel(pixw,pixh,color); end; end; g.DrawImage(bit1,0,0,width,height); g.DrawImage(bit2,width + 10,0,width,height); bit1.Free; bit2.Free; g.Free; end;
//显示 ico 图标 var g:TGPGraphics; bit:TGPBitmap; ico:HICON; begin g:=TGPGraphics.Create(Canvas.Handle); g.Clear(aclWhite); ico:= LoadIcon(0,IDI_QUESTION); bit:=TGPBitmap.Create(ico); g.DrawImage(bit,10,10); bit.Free; g.Free; end;