我想在vb.net中将图片调整为 4x4像素图片。
使用互联网我得到了这段代码:
Public Function ResizeImage(ByVal image As Image) As Image
Try
Dim newWidth = 4
Dim newHeight = 4
Dim newImage As New Bitmap(newWidth, newHeight)
newImage.SetResolution(100, 100)
Using graphicsHandle As Graphics = Graphics.FromImage(newImage)
graphicsHandle.InterpolationMode = InterpolationMode.HighQualityBicubic
graphicsHandle.DrawImage(image, 0, 0, newWidth, newHeight)
End Using
Return newImage
Catch ex As Exception
Return image
End Try
End Function
原件:
使用photoshop调整大小(调整大小的真正方法):
使用InterpolationMode.Bilinear
使用InterpolationMode.HighQualityBicubic
有什么问题?
答案 0 :(得分:0)
您需要的设置是双线性或双三次插值(避免使用“高质量”选项)和PixelOffsetMode.Half。
graphicsHandle.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear graphicsHandle.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half
插值时,GDI +通常将像素的中心偏移半个像素。这在缩放时可能具有不期望的效果,具有向上和向左移动缩放图像的外观。使用PixelOffsetMode.Half将像素移回“属于”的位置。
高质量的双线性和双三次插值模式似乎将边缘像素与超出图像边界的假想透明像素混合,在边缘处创建半透明边缘。