从数码相机中刚出的图像通常超过2-3 MB的大小,这使得它很难通过电子邮件和其他方式进行传输。这需要调整图像的大小(根据文件大小而不是高度或宽度)。非常类似于MS油漆提供图像大小调整功能。我没有受过良好的图像档案理论的教育。如果有人能向我指出以下信息来源,我将不胜感激:
非常感谢,
发布于 2012-06-21 12:25:06
图像大小调整功能是内置在.NET框架中的。有几种不同的方法:
下面是一个很好的博客帖子,它涵盖了它们之间的差异。
下面是GDI+的一个示例:
public void Resize(string imageFile, string outputFile, double scaleFactor)
{
using (var srcImage = Image.FromFile(imageFile))
{
var newWidth = (int)(srcImage.Width * scaleFactor);
var newHeight = (int)(srcImage.Height * scaleFactor);
using (var newImage = new Bitmap(newWidth, newHeight))
using (var graphics = Graphics.FromImage(newImage))
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphics.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
newImage.Save(outputFile);
}
}
}发布于 2015-03-09 22:30:52
我使用了达林·季米特洛夫提供的例子,Image被膨胀到并占用了大量的磁盘空间(从1.5MB到17MB左右)。
这是由于最后一行代码中的一个小错误造成的。
下面的函数将图像保存为位图(巨大的图像大小)。
newImage.Save(outputFile)正确的职能应该是:
newImage.Save(outputFile, ImageFormat.Jpeg);发布于 2012-06-21 12:25:21
Imageresizer工作得很好。http://imageresizing.net/
https://stackoverflow.com/questions/11137979
复制相似问题