2011-09-08 158 views

回答

0

您必须使用可能的最低质量进行自定义绘制以调整大小。要自定义绘制控件,你会处理其Paint事件一些这样或那样的(理想情况下,你会继承,但我会让它更简单),所以在Paint处理您的图片框,把这个代码:

Graphics g = e.Graphics; 
PictureBox picbox = (PictureBox)sender; 
g.Clear(picbox.BackColor); 

g.InterpolationMode = InterpolationMode.Low; 
// Draw the image using g.DrawImage() 
+2

感谢您的帮助,我发现这个http://www.xtremedotnettalk.com/showthread.php?t=97904,它的作品令人惊讶:) – craigbett

1

这是您使用的确切组件?这通常通过将ImageStretch或ImageFit切换到NearestNeighbour来解决。这是您正在查找的过滤/插值设置。

1

PictireBox仅支持基本的缩放算法。只要将图像存储在内存中,您就可以实现自己的缩放算法,并将缩放后的图像提供给PictireBox并禁用后者的任何缩放功能。 您可以使用实现高级缩放算法的this library