c#图片显示问题 做一个GDI+处理图片的东西,在PictureBox上显示一个图片进行放大缩小,但是放大的时候图片的质量就不高了,该怎么处理呢?还是换掉图片的格式?二进制? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单独保存源图片,每次放大缩小都使用源图片而不用PictureBox里面的Image吧。 图像一旦放大或缩放,显示质量必然就会下降,只有图像与显示器像素重合时效果最好。可以想着用算法对图象进行插值 网上有专门的算法,不过图象如果插的过大,速度上会比较慢,而且效果不好,马赛克出现 google一下“c# 图像插值算法” 我同意一楼的观点,帮你解释一下。就是你要处理的那张原图片单独保存在一个变量里,然后复制出一份拷贝,将这份拷贝提供给PictureBox。比如你要做放大缩小,就用原图片做,然后把调整大小后的图片复制给PictureBox。例子:Image imgOriginal = ...; //原图Image imgDisplay = imgOriginal.Copy(); //可能没有这个方法,只是示意做一份拷贝PictureBox.Image = imgDisplay.放大缩小();//如果要做其他变化imgDisplay = imgOriginal.Copy(); //重新获得一份拷贝PictureBox.Image = imgDisplay.其他变化(); 我知道你们的意思了,显然是我自己表达的不好,这个pictureBox我让其可以放大和缩小, p.SizeMode = PictureBoxSizeMode.StretchImage;//若想图片的大小跟随pictureBox的大小而改变,在这种情况下,图片的质量会发生变化,质量不是很高。 这样的话就看看3楼的回答吧,不过最好还是进行下像素限制,不然再好的算法你给我一个16*16的PNG,我放大到1024*768肯定看不清的,一般放大到原始像素的单向2倍大小就可以了。 为何我的json无法给flexigrid喂数据?? 如何让程序依次执行一系列的VOID 怎样禁止窗体接受键盘输入?KeyPress中用e.Handled= true;不管用 ArrayList的ADD和COUNT用不来 asp.net 向javascript传递参数的问题 高手帮忙解答下吧。。一个listBox控件的问题。。很急。。 怎么样屏蔽ctrl+alt+del组合键 问个弱智的问题! 在线等,急,如何让程序同时只能运行一个。。。 请问数组与集合的区别 这一句是什么意思 C#调用C++DLL函数,结构体输出参数不正确
可以想着用算法对图象进行插值
网上有专门的算法,不过图象如果插的过大,速度上会比较慢,而且效果不好,马赛克出现
google一下“c# 图像插值算法”
就是你要处理的那张原图片单独保存在一个变量里,然后复制出一份拷贝,将这份拷贝提供给PictureBox。
比如你要做放大缩小,就用原图片做,然后把调整大小后的图片复制给PictureBox。
例子:
Image imgOriginal = ...; //原图
Image imgDisplay = imgOriginal.Copy(); //可能没有这个方法,只是示意做一份拷贝
PictureBox.Image = imgDisplay.放大缩小();
//如果要做其他变化
imgDisplay = imgOriginal.Copy(); //重新获得一份拷贝
PictureBox.Image = imgDisplay.其他变化();