请问下vc++如何处理jpg图片?

chp845 2012-03-05 03:39:57
我想打开一个jpg,把jpg图片的非黑色像素点全部替换成白色像素点,这个可以吗??
...全文
204 12 打赏 收藏 转发到动态 举报
写回复
用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+

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧