我正试图使用system.drawing来增加上传图像的大小。它可以工作,但文件大小要比我使用Photoshop做的要大得多。这是我必须处理的问题,还是有办法减少文件大小?
我正在使用这段代码,并对Drawing2d设置进行了调整,但这并没有产生明显的差别。
resizedImage = New Bitmap(newWidth, newHeight, image.PixelFormat)
graphics = graphics.FromImage(resizedImage)
graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality
graphics.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
graphics.SmoothingMode = Drawing.Drawing2D.SmoothingMode.HighQuality
graphics.FillRectangle(Brushes.White, 0, 0, newWidth, newHeight)
graphics.DrawImage(image, 0, 0, newWidth, newHeight)为了达到更好的效果,我是否需要使用一个专用的库?
发布于 2014-06-19 13:18:15
这里的参数影响的是图像的“呈现”,而不是“图像文件大小”。
若要影响图像文件大小,需要使用Image.Save法保存jpeg的质量。
这是来自MSDN示例的一段代码,说明如何降低图像文件的大小。
// Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter = new EncoderParameter(myEncoder, 25L);
myEncoderParameters.Param[0] = myEncoderParameter;
// and now save it to the file
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);https://stackoverflow.com/questions/24307437
复制相似问题