【求助】用pictureBox显示一个黑白8bit图像,如何消除颗粒感。

seamone 2013-07-06 08:25:59
pictureBox显示一个黑白8bit图像,以实际比例显示,如何消除图像的颗粒感。
如题,用系统自带的照片查看器就没有这个问题。网络上相关的我都搜索过,试过好多方式也没搞定,在此请大哥们帮帮我。



源程序下载
...全文
1253 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kxyzjm62 2013-07-07
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/150099560.html
seamone 2013-07-07
  • 打赏
  • 举报
回复
引用 12 楼 laviewpbt 的回复:
C#中使用FreeImage库加载Bmp、JPG、PNG、PCX、TGA、PSD等25种格式的图像(源码)。 你自己看下吧,可以解决你的问题。
谢谢laviewpbt大哥,已解决我的问题。还麻烦你帮忙测试写代码,非常感激。之前我也网络找了一些.net处理图像的开源程序,但是都不是想要的,好了,应该结贴了。
laviewpbt 2013-07-07
  • 打赏
  • 举报
回复
引用 13 楼 tcmakebest 的回复:
同样的图肯定是一样的效果,系统显示的时候可能不是100%比例。
请你自己去试验下那个图像在说哦。
tcmakebest 2013-07-07
  • 打赏
  • 举报
回复
同样的图肯定是一样的效果,系统显示的时候可能不是100%比例。
laviewpbt 2013-07-07
  • 打赏
  • 举报
回复
laviewpbt 2013-07-07
  • 打赏
  • 举报
回复
OleLoadPicture 这个东西在C#中调用不是普通API调用那么简单的事情,很繁琐。、 我正在试着用FreeImage加载他,你稍微等等吧。
seamone 2013-07-07
  • 打赏
  • 举报
回复
引用 7 楼 laviewpbt 的回复:
这个问题你要解决,一种方法就是借助其他第三方库对该JPG进行解码,还是一种就是利用OleLoadPicture这个API函数读取JPG,这个是系统的函数。然后调用Bitmap类的FromHBitmap创建GDI+位图。
唉,laviewpbt大哥,OleLoadPicture相关资料没有C#版本的,能力不够,我没有搞定。
laviewpbt 2013-07-06
  • 打赏
  • 举报
回复
嗯,这个我大意了,你再用系统的画图打开看看就知道了。画图打开的和你用VS打开的效果是一样的,有颗粒感的。 我一直对照片查看器和画图那个系统自带的 图像方面的软件 感到 不可思议。 有些照片查看器能查看的16位图像,画图却打不开,加上几天你这个图像,可以确认两者在内部 肯定还是用了不同的库的。
seamone 2013-07-06
  • 打赏
  • 举报
回复
引用 3 楼 laviewpbt 的回复:
你这一张图像是8位的JPG格式,VS.NET中你设置为CenterImage那么显示的时候其实就是1:1现实。 你要知道vs.net对图像的解码是借助于GDI+的,你会发现GDI+对8位的JPG格式的解码的效果和photoshop解码的有些不一样,这张图像用PS解码的效果很好的。 至于你说的系统自带的照片查看器的效果好,那是因为照片查看器已经将图像缩小了。缩小后的插值一定程度上降低了原始的颗粒感。 如果你用画图等系统工具打开图像,一样可以看到颗粒感。
谢谢,但是我用系统的照片查看器(Win7)是点击了“实际大小”来查看的,这应该不是缩小了吧?
laviewpbt 2013-07-06
  • 打赏
  • 举报
回复
说白了,这是windows的GDI+解码器的问题,我用了老版本的VS6.0的stdpicture加载这幅图像的效果很正常的。
laviewpbt 2013-07-06
  • 打赏
  • 举报
回复
你这一张图像是8位的JPG格式,VS.NET中你设置为CenterImage那么显示的时候其实就是1:1现实。 你要知道vs.net对图像的解码是借助于GDI+的,你会发现GDI+对8位的JPG格式的解码的效果和photoshop解码的有些不一样,这张图像用PS解码的效果很好的。 至于你说的系统自带的照片查看器的效果好,那是因为照片查看器已经将图像缩小了。缩小后的插值一定程度上降低了原始的颗粒感。 如果你用画图等系统工具打开图像,一样可以看到颗粒感。
seamone 2013-07-06
  • 打赏
  • 举报
回复
pictureBox 难道就只能放弃吗?我想应该有方法吧。 因为我用pictureBox显示别的彩色图像不这样,但是显示8bit的黑白图像才会产生颗粒感,那个图像详见1楼附件里。 你说的封装好的控件,也请推荐一个给我参考好吗?
喂大的程序员 2013-07-06
  • 打赏
  • 举报
回复
普通的图片pictureBox,和图片编辑器显示当然会不一样,建议找封装好的控件,往游戏上琢磨
seamone 2013-07-06
  • 打赏
  • 举报
回复
引用 7 楼 laviewpbt 的回复:
这个问题你要解决,一种方法就是借助其他第三方库对该JPG进行解码,还是一种就是利用OleLoadPicture这个API函数读取JPG,这个是系统的函数。然后调用Bitmap类的FromHBitmap创建GDI+位图。
我现在很茫然无助,谢谢你给你指明方向,我先去试一试。 :)
laviewpbt 2013-07-06
  • 打赏
  • 举报
回复
这个问题你要解决,一种方法就是借助其他第三方库对该JPG进行解码,还是一种就是利用OleLoadPicture这个API函数读取JPG,这个是系统的函数。然后调用Bitmap类的FromHBitmap创建GDI+位图。

111,089

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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