VC6.0或VS2010对图片操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC6.0或VS2010对图片操作相关的知识,希望对你有一定的参考价值。

我需要编写一个程序,用VC6.0或VS2010来写,最好是c语言的,怎么样才能把一个图片抠一块下来,就是给一个源图片,然后给需要抠图的区域坐标及大小,把这一块给抠下来,保存成另一个图片。请问需要用的什么函数?什么方法?求详细。高分跪求!

您能稍微详细跟我说一下吗?或者给我看一个差不多的程序吗?因为我是VC初学者,谢谢了!

你终于肯放弃vc6了?其实有gdi+ sdk的话vc6也可以……
既然提到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+实现很不错的。

给你一个完整程序的参考代码吧,整体是按照我昨天说的方法,但功能比较多。

来自:求助得到的回答
参考技术A 用到的主要函数:
LoadImage
读取图片
CreateCompatibleDC
创建内存DC
SelectObject
将图片放入DC
BitBlt
将DC中的一部分(矩形区域)复制到另一个DC
GetBitmap
获取BITMAP结构
GetDIBits
获取BMP文件头
CFile::Open/WriteHuge
打开文件,写入图片文件

以上是关于VC6.0或VS2010对图片操作的主要内容,如果未能解决你的问题,请参考以下文章

win7系统装了vc6.0和vs2010,为啥无法安装番茄助手在vs2010中

还在使用vc6.0吗??vs2010吧

VC6.0中可以运行。VS2010就出问题了。

VC6.0编译DLL,使用VS2010调用问题及解决方法

求解win8系统怎样才能解决VC6.0 不兼容问题,或者哪里有VS2010的下载链接和教程

vs2010 编译多个project问题