随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万

//用 Bitmap 显示图像
var
  g: TGPGraphics;
  bit: TGPBitmap;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  bit := TGPBitmap.Create('c:\temp\x.jpg');

  g.DrawImage(bit, 11, 11); {默认大小竟然和 1:1 不一样, 是不是分辨率的问题?}
  g.DrawImage(bit, 11, 11, bit.GetWidth, bit.GetHeight);         {1:1}
  g.DrawImage(bit, 11, 11, bit.GetWidth*0.5, bit.GetHeight*0.5); {1:2}

  bit.Free;
  g.Free;
end;

//复制像素 var   g: TGPGraphics;   bit1,bit2: TGPBitmap;   row,column,width,height: Integer;   color: TGPColor; begin   g := TGPGraphics.Create(Canvas.Handle);   bit1 := TGPBitmap.Create('c:\temp\x.jpg');   width := bit1.GetWidth;   height := bit1.GetHeight;   bit2 := TGPBitmap.Create(width, height);   for row := 0 to height - 1 do   begin     for column := 0 to width - 1 do     begin       bit1.GetPixel(column, row, color);       bit2.SetPixel(column, row, color);     end;   end;   g.DrawImage(bit1, 0, 0, width, height);   g.DrawImage(bit2, width, 0, width, height);   bit1.Free;   bit2.Free;   g.Free; end;
//横向翻转 var   g: TGPGraphics;   bit1,bit2: TGPBitmap;   row,column,width,height: Integer;   color: TGPColor; begin   g := TGPGraphics.Create(Canvas.Handle);   bit1 := TGPBitmap.Create('c:\temp\x.jpg');   width := bit1.GetWidth;   height := bit1.GetHeight;   bit2 := TGPBitmap.Create(width, height);   for row := 0 to height - 1 do   begin     for column := 0 to width - 1 do     begin       bit1.GetPixel(column, row, color);       bit2.SetPixel(width-column, row, color); {width-column}     end;   end;   g.DrawImage(bit1, 0, 0, width, height);   g.DrawImage(bit2, width, 0, width, height);   bit1.Free;   bit2.Free;   g.Free; end;
//纵向翻转 var   g: TGPGraphics;   bit1,bit2: TGPBitmap;   row,column,width,height: Integer;   color: TGPColor; begin   g := TGPGraphics.Create(Canvas.Handle);   bit1 := TGPBitmap.Create('c:\temp\x.jpg');   width := bit1.GetWidth;   height := bit1.GetHeight;   bit2 := TGPBitmap.Create(width, height);   for row := 0 to height - 1 do   begin     for column := 0 to width - 1 do     begin       bit1.GetPixel(column, row, color);       bit2.SetPixel(column, height-row, color); {height-row}     end;   end;   g.DrawImage(bit1, 0, 0, width, height);   g.DrawImage(bit2, width, 0, width, height);   bit1.Free;   bit2.Free;   g.Free; end;
//透明度渐变 var   g: TGPGraphics;   bit1,bit2: TGPBitmap;   row,column,width,height: Integer;   color: TGPColor; begin   g := TGPGraphics.Create(Canvas.Handle);   bit1 := TGPBitmap.Create('c:\temp\x.jpg');   width := bit1.GetWidth;   height := bit1.GetHeight;   bit2 := TGPBitmap.Create(width, height);   for row := 0 to height - 1 do   begin     for column := 0 to width - 1 do     begin       bit1.GetPixel(column, row, color);       color := MakeColor(255 * Column div width,                         GetRed(color),                         GetGreen(color),                         GetBlue(color));       bit2.SetPixel(column, row, color);     end;   end;   g.DrawImage(bit1, 0, 0, width, height);   g.DrawImage(bit2, width, 0, width, height);   bit1.Free;   bit2.Free;   g.Free; end;
//显示 ico 图标 var   g : TGPGraphics;   bit: TGPBitmap;   ico: HICON; begin   g := TGPGraphics.Create(Canvas.Handle);   ico := LoadIcon(0, IDI_QUESTION);   bit:= TGPBitmap.Create(ico);   g.DrawImage(bit, 10, 10);   bit.Free;   g.Free; end;
posted on   万一  阅读(6053)  评论(2编辑  收藏  举报


点击右上角即可分享
微信分享提示