VC6.0或VS2010对图片操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC6.0或VS2010对图片操作相关的知识,希望对你有一定的参考价值。
我需要编写一个程序,用VC6.0或VS2010来写,最好是c语言的,怎么样才能把一个图片抠一块下来,就是给一个源图片,然后给需要抠图的区域坐标及大小,把这一块给抠下来,保存成另一个图片。请问需要用的什么函数?什么方法?求详细。高分跪求!
您能稍微详细跟我说一下吗?或者给我看一个差不多的程序吗?因为我是VC初学者,谢谢了!
既然提到vs2010了,那么我说一下gdi+的做法。
1、从文件创建一个Image对象(Image::FromFile
2、根据要保存的部分的大小(分辨率)创建一个Bitmap对象(直接用它构造函数即可
2、从Bitmap对象创建一个Graphics对象(Graphics::FromImage
3、调用Graphics对象上的DrawImage方法,
g->DrawImage(步骤1的Image对象指针, 0, 0, x, y, w, h, UnitPixel);
其中x、y是要截取的部分的左上角的坐标,w和h是要截取的部分的大小(也就是目标图像的分辨率,步骤2中创建的图像的分辨率
4、调用Graphics对象上的Flush方法确保数据都写入Bitmap对象了
5、调用步骤2创建的Bitmap对象上的Save方法保存文件,这个具体你可以上网搜,关于那些clsid啥的应该送什么参数 参考技术A
空雪梦见说的对,GDI+实现很不错的。
给你一个完整程序的参考代码吧,整体是按照我昨天说的方法,但功能比较多。
LoadImage
读取图片
CreateCompatibleDC
创建内存DC
SelectObject
将图片放入DC
BitBlt
将DC中的一部分(矩形区域)复制到另一个DC
GetBitmap
获取BITMAP结构
GetDIBits
获取BMP文件头
CFile::Open/WriteHuge
打开文件,写入图片文件
以上是关于VC6.0或VS2010对图片操作的主要内容,如果未能解决你的问题,请参考以下文章
win7系统装了vc6.0和vs2010,为啥无法安装番茄助手在vs2010中