<p>I am using StretchImage because the box is resizable with splitters. It looks like the default is some kind of smooth bilinear filtering, causing my image to be blurry and have moire patterns. </p>

[{'answer_id': 29209, 'author': 'Joel Lucsy', 'author_id': 645, 'author_profile': 'https://Stackoverflow.com/users/645', 'pm_score': 3, 'selected': False, 'text': "<p>I suspect you're going to have to do the resizing manually thru the Image class and DrawImage function and respond to the resize events on the PictureBox.</p>\n"}, {'answer_id': 29215, 'author': 'GateKiller', 'author_id': 383, 'author_profile': 'https://Stackoverflow.com/users/383', 'pm_score': -1, 'selected': False, 'text': '<p>When resizing an image in .net, the System.Drawing.Drawing2D.InterpolationMode offers the following resize methods:</p>\n\n<ul>\n<li>Bicubic</li>\n<li>Bilinear</li>\n<li>High</li>\n<li>HighQualityBicubic</li>\n<li>HighQualityBilinear</li>\n<li>Low</li>\n<li>NearestNeighbor</li>\n<li>Default</li>\n</ul>\n'}, {'answer_id': 5079308, 'author': 'Alex D', 'author_id': 621520, 'author_profile': 'https://Stackoverflow.com/users/621520', 'pm_score': 2, 'selected': False, 'text': '<p>I did a MSDN search and turns out there\'s an article on this, which is not very detailed but outlines that you should use the paint event.</p>\n\n<p><a href="http://msdn.microsoft.com/en-us/library/k0fsyd4e.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/k0fsyd4e.aspx</a></p>\n\n<p>I edited a commonly available image zooming example to use this feature, see below</p>\n\n<p>Edited from: <a href="http://www.dotnetcurry.com/ShowArticle.aspx?ID=196&amp;AspxAutoDetectCookieSupport=1" rel="nofollow">http://www.dotnetcurry.com/ShowArticle.aspx?ID=196&amp;AspxAutoDetectCookieSupport=1</a></p>\n\n<p>Hope this helps</p>\n\n<pre><code>    private void Form1_Load(object sender, EventArgs e)\n    {\n        // set image location\n        imgOriginal = new Bitmap(Image.FromFile(@"C:\\images\\TestImage.bmp"));\n        picBox.Image = imgOriginal;\n\n        // set Picture Box Attributes\n        picBox.SizeMode = PictureBoxSizeMode.StretchImage;\n\n        // set Slider Attributes\n        zoomSlider.Minimum = 1;\n        zoomSlider.Maximum = 5;\n        zoomSlider.SmallChange = 1;\n        zoomSlider.LargeChange = 1;\n        zoomSlider.UseWaitCursor = false;\n\n        SetPictureBoxSize();\n\n        // reduce flickering\n        this.DoubleBuffered = true;\n    }\n\n    // picturebox size changed triggers paint event\n    private void SetPictureBoxSize()\n    {\n        Size s = new Size(Convert.ToInt32(imgOriginal.Width * zoomSlider.Value), Convert.ToInt32(imgOriginal.Height * zoomSlider.Value));\n        picBox.Size = s;\n    }\n\n\n    // looks for user trackbar changes\n    private void trackBar1_Scroll(object sender, EventArgs e)\n    {\n        if (zoomSlider.Value &gt; 0)\n        {\n            SetPictureBoxSize();\n        }\n    }\n\n    // redraws image using nearest neighbour resampling\n    private void picBox_Paint_1(object sender, PaintEventArgs e)\n    {\n        e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;\n        e.Graphics.DrawImage(\n           imgOriginal,\n            new Rectangle(0, 0, picBox.Width, picBox.Height),\n            // destination rectangle \n            0,\n            0,           // upper-left corner of source rectangle\n            imgOriginal.Width,       // width of source rectangle\n            imgOriginal.Height,      // height of source rectangle\n            GraphicsUnit.Pixel);\n    }\n</code></pre>\n'}, {'answer_id': 13484101, 'author': 'JYelton', 'author_id': 161052, 'author_profile': 'https://Stackoverflow.com/users/161052', 'pm_score': 6, 'selected': True, 'text': '<p>I needed this functionality also. I made a class that inherits PictureBox, overrides <code>OnPaint</code> and adds a property to allow the interpolation mode to be set:</p>\n\n<pre><code>using System.Drawing.Drawing2D;\nusing System.Windows.Forms;\n\n/// &lt;summary&gt;\n/// Inherits from PictureBox; adds Interpolation Mode Setting\n/// &lt;/summary&gt;\npublic class PictureBoxWithInterpolationMode : PictureBox\n{\n    public InterpolationMode InterpolationMode { get; set; }\n\n    protected override void OnPaint(PaintEventArgs paintEventArgs)\n    {\n        paintEventArgs.Graphics.InterpolationMode = InterpolationMode;\n        base.OnPaint(paintEventArgs);\n    }\n}\n</code></pre>\n'}]
['https://Stackoverflow.com/questions/29157', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2543/']