社区
图形处理/算法
帖子详情
请问下vc++如何处理jpg图片?
chp845
2012-03-05 03:39:57
我想打开一个jpg,把jpg图片的非黑色像素点全部替换成白色像素点,这个可以吗??
...全文
204
12
打赏
收藏
请问下vc++如何处理jpg图片?
我想打开一个jpg,把jpg图片的非黑色像素点全部替换成白色像素点,这个可以吗??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LLionTree
2012-03-08
打赏
举报
回复
GDI+ 就可以实现了。。
ImageAttributes remapAttributes;
ColorMap redToBlue;
redToBlue.oldColor = Color(255, 255, 0, 0);
redToBlue.newColor = Color(255, 255, 255, 255);
remapAttributes.SetRemapTable(1, &redToBlue);
Graphics g(mdc_Bk);
g.DrawImage(
&image2,
destRect,
0,
0,
55,
24,
UnitPixel,
&remapAttributes,
NULL,
NULL
);
处处闻啼鸟
2012-03-08
打赏
举报
回复
额,,搞错了哈,,你是要设成白色,,,
SetPixel(hDC, CPoint(j, i), RGB(0, 0, 0);
改为
SetPixel(hDC, CPoint(j, i), RGB(255, 255, 255);
处处闻啼鸟
2012-03-08
打赏
举报
回复
IplImage* pImg; // 用来保存需要处理的JPG图像
// 打开JPG 并保存到 pImg中
TCHAR strFilter[] = { "Picture Files (*.jpg)|*.jpg||"};/*(*.bmp)|*.bmp||*/
CFileDialog dlg(TRUE,".jpg",NULL,0,strFilter);
if (dlg.DoModal() == IDOK)
{
strImageName = dlg.GetFileName();
if ((pImg = cvLoadImage(strImageName,CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_COLOR)) == 0)
{
return ;
}
}
// 逐行判断每个点的像素是否为黑色
for(int i = 0; i < ImageHeight; i ++) // 沿Y,因为是横向扫描,所以 高度在外,如果要纵向,就是 / /X在外
{
for(int j = 0; j < ImageWidth; j ++) // 沿X
{
if (pChange->imageData[j + i * ImageWidth] != 0) // 判断当前扫描的点是否为黑色
{
// 不是黑色
SetPixel(hDC, CPoint(j, i), RGB(0, 0, 0); // 将指定坐标处的像素设为指定的颜色
}
}
}
具体你在自己查查,,随意给个思想给你
Zoelov
2012-03-07
打赏
举报
回复
可以使用gdi+或者推荐使用OpenCV的库,很方便
向立天
2012-03-07
打赏
举报
回复
用OpenCV可能方便些吧
chp845
2012-03-07
打赏
举报
回复
[Quote=引用 8 楼 canglang1986 的回复:]
你可以直接读取jpg图片的数据,把你认为黑色的限定值是多少,把低于这个的保留,高于这个值的全部置为255,这样不就搞定了。但愿你的是灰度图像,不是灰度图像的话,方法麻烦一点。还是可以做到的。
[/Quote]
我已经把图片搞成灰度图像!应该可以处理把,我明日试下!!
浪2013
2012-03-07
打赏
举报
回复
你可以直接读取jpg图片的数据,把你认为黑色的限定值是多少,把低于这个的保留,高于这个值的全部置为255,这样不就搞定了。但愿你的是灰度图像,不是灰度图像的话,方法麻烦一点。还是可以做到的。
stf1987
2012-03-06
打赏
举报
回复
可以利用CImage类load方法读取图像,setpixel设置像素
虽然笨,但方法很简单~
副组长
2012-03-05
打赏
举报
回复
可以,使用jpg库,将图像加载到内存的DIB,随意处理。
fengbingchun
2012-03-05
打赏
举报
回复
opencv、cxiamge任何一个开源的图像处理库都可以很容易的实现
chp845
2012-03-05
打赏
举报
回复
[Quote=引用 1 楼 ystemni 的回复:]
gdi+
[/Quote]
gid+可以对像素进行直接处理吗?
ystemni
2012-03-05
打赏
举报
回复
gdi+
V
C++
对
JPG
文件操作
V
C++
对
JPG
文件操作,包括显示,出来 有源代码
本例程采用V
C++
实现
JPG
格式
图片
的打开
本例程采用V
C++
实现
JPG
格式
图片
的打开,里面包含
JPG
格式的
图片
的数据类型,可以和BMP进行转换
V
C++
屏幕截图为
jpg
格式-完整的截图例子
应用GDIPlus GDI类库屏幕截图,保存
jpg
格式 ,生成的
图片
体积比较小。简单实例,下载,可以直接使用!
V
C++
按比例缩放
图片
用V
C++
制作的
图片
缩放小程序,初学者所做,算是学习
C++
一个半个月了的总结。
在V
C++
6.0中将
JPG
格式
图片
转换成BMP格式
这是利用GDI+库的方法完成GIF、JPEG 、Exif 、PNG 、TIFF 、ICON、WMF 、EMF等多种格式的
图片
转成BMP,本文章的基础上,对各种格式的
图片
进行编辑,如区域选定变色,灰度化等!本文章所讲例子都经过了调试,可直接使用!
图形处理/算法
19,469
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章