文档章节

GDI+ 学习记录(27): Bitmap

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 446
阅读 12
收藏 0
//用 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;

本文转载自:http://www.cnblogs.com/del/archive/2007/12/27/1017608.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
在.net中使用GDI+来提高gif图片的保存画质

//本文章有www.blue1000.com翻译,原文地址http://codebetter.com/blogs/brendan.tompkins/archive/2004/01/26/6103.aspx //尊重他人劳动成果,转载请注明出处。 写程序的时候经常用到gdi+,...

晨曦之光
2012/03/09
81
0
C#和C++混合编程

调用简单的C++函数 要在C#代码中调用C++函数,大体的思路是这样的:首先将C++函数写成DLL形式的库,然后在C#中导入DLL中的函数进行调用。具体的代码类似这样: C++代码: C#代码: (导入函数...

moki_oschina
2016/07/06
67
0
GDI+里面的问题。。。。。。。。。。

error C2248: “Gdiplus::Bitmap::Bitmap”: 无法访问 private 成员(在“Gdiplus::Bitmap”类中声明) 1> c:program filesmicrosoft sdkswindowsv7.0aincludegdiplusheaders.h(630) : 参见“G......

xxdd
2013/10/24
60
0
OpenCV用GDI或者GDI+函数对IplImage图像处理

(1 )IplImage -> Bitmap and Bitmap -> IplImage IplImage *img ;Bitmap bitmap( 20 ,20 ,PixelFormat24bppRGB ) ;Graphics pGra( & bitmap) ;HDC hdc = pGra ->GetHDC() ;CvImage cvimg ;cv......

moki_oschina
2016/04/09
30
0
DirectDraw 编程指南

译者注:由于最近在学习DirectDraw的东西, 学了快两个星期了吧, 还是收获不少。今天周未闲来无事,实在无聊,总不能老想女朋友吧,呵呵,还是翻译点文章来打发时间。下面所有的DD表示Direc...

长平狐
2012/08/13
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

颜色模型与颜色应用---光的特性

电磁频谱 颜色的心理学特征

中国龙-扬科
20分钟前
2
0
android音频及强噪相关

Android AudioRecord和AudioTrack介绍(Android音频收集和播放 麦克风降噪) https://blog.csdn.net/tanningzhong/article/details/72844559 音频采集(AudioRecorder) https://www.jianshu.......

whoisliang
27分钟前
2
0
redis-持久化

RDB rdb持久化是把当前进程数据生成快照保存到磁盘的过程。触发RDB持久化过程分为手动触发和自动触发。 触发机制 bgsave执行流程 rdb优缺点 AOF 记录每次写命令,重启时再重新执行aof文件中的...

grace_233
32分钟前
3
0
电话激活Windows 中文操作系统步骤

已购买微软MAK批量授权,系统又在企业内网中,无法通过连接Internet进行激活,还可以通过电话完成激活。 前期准备 请提前准备好产品密钥,Product Key格式如下:XXXXX-XXXXX-XXXXX-XXXXX-XXX...

tonyfox
34分钟前
4
0
Apache用户认证,域名跳转,访问日志

Apache用户认证 当设置了用户认证后,用户访问网站时,需要输入用户名和密码才能访问。 可以全局设置,也可以为某几个虚拟主机单独配置。 下面以全局配置进行操作示例。 编辑httpd.conf进行配...

野雪球
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部