GDI+学习笔记(三)绘制一张简单的图片
来源:互联网 发布:与淘宝相似的软件 编辑:程序博客网 时间:2024/05/16 13:53
这回将绘制一张简单的图片,之所以称之为简单的,是因为我们只会绘制png/jpg/bmp等单帧的图片,而不会绘制gif,不要跟我说jpg什么的也可以有多帧。那些所谓的多帧jpg图片内部的存储结构实际上是gif,只是因为各种原因,后缀被人为改成了jpg或png而已。
闲话不多,开始正题。
(一)创建一个Graphics对象
Graphics对应与一个DC句柄相关联,DC也就是设备描述表,作为使用者的我们,其实不必太过关心其意义,当然为了显得很博学,而且时间很充裕的话,可以选择百度一下,我这里就不浪费笔墨了。
DC的获得可以通过windows API : GetDC()取得。它的函数原型如下:
HDC GetDC(HWND hWnd)也就是说你只要拥有一个windows句柄就可以获得这个DC句柄,在MFC中同样可以获得,差异不大。现在看看给Graphics初始化:
Graphics graphics(hdc);
如果你不确定什么时候能够得到hdc,那么你也可以使用指针,这样更方便一些,不是么?只是要记得释放。
Graphics *pGraphics = new Graphics(hdc);
(二)初始化图像
以后,我们都会使用指针来创建对象了,不在赘述。
现在我们需要一个Image指针,并且为它new一个对象,代码如下:
Image *pImage;pImage = new Image("mylove.jpg");
这里有个重要的事情差点被忽略了,我们应该确保在new之后,这张图元确实被成功加载了。
if(pImage->GetLastStatus() != Ok){return false;}
(三) 绘制图像
绘制图像的函数,在GDI+中被重载了很多种,我们这里简单介绍两种。
if (pGraphics != NULL) pGraphics->DrawImage(pImage, 0, 0);
这种是要将image绘制到设备的(0,0)位置上去。
然后,再看一种:
if (pGraphics != NULL) pGraphics->DrawImage(pImage, 0, 0, 100, 200);
这种也很好理解,就是要将pImage图像绘制到设备的0,0,位置上,并且它的宽度为100,高度为200.
(四)其他
看了上面两种方法,就会发现GDI+很简单吧。这里还需要知道一些重要的事情。
GDI+重载的不仅仅是DrawImage,它同样冲在了Graphics的构造函数,我们不但可以使用无参的Graphics,也可以使用Bitmap*来进行初始化,这样做有什么好处,我们将会在双缓冲一节中详细介绍。
0 0
- GDI+学习笔记(三)绘制一张简单的图片
- 【学习笔记】cocos2d 如何绘制一张图片
- C#学习笔记之使用GDI绘制简单的图形
- GDI+学习笔记(八)MFC图片控件中显示一张图片
- GDI绘制简单的图形
- Windows GDI学习笔记——窗口的绘制
- GDI+学习笔记7-统计报表的图形绘制
- C# 学习笔记一(图形绘制基础1 GDI+)
- GDI+学习笔记(五)绘制一个正方体
- Windows GDI学习笔记(二)——窗口的绘制
- 如何绘制一张简单的html表格
- c# GDI绘制简单的艺术字
- GDI+学习笔记(二)GDI+的配置和初始化
- libgdx 学习笔记(一)绘制图片
- opencv学习笔记(二十七)实例:显示一张灰度图片的直方图
- iOS开发的2D绘制--CoreGraphics的简单使用三(画文字和图片)
- GDI+ 如何将图片绘制成圆形的图片
- GDI+学习笔记6-统计报表的背景与文字的绘制
- APP的Rejected多种情况
- iPhone 文件结构和文件操作
- SQL-insert-delete-update(DML)常用命令
- UITestFiled收起键盘理解
- 开通了博客
- GDI+学习笔记(三)绘制一张简单的图片
- 分享一下个人的Vim配置文件
- 安卓基础学习2
- ant笔记-6.项目构建之清理,初始化,编译
- DAT_copy 产生的问题
- 分布式系统时钟同步(未完)
- C++ class实例的内存结构
- 般若波多密心经读书心得(一)
- 在win7上安装 SQL serve 2000