c#-4.0 - 使用C#调整图像大小

标签 c#-4.0 png jpeg gif tiff

从数码相机中提取的图像通常大于2-3 MB,因此很难通过电子邮件和其他方式进行传输。
这需要调整图像的大小(根据文件大小而不是高度或宽度)。非常类似于MS Paint提供的图像大小调整功能。
我对图像文件理论没有很好的认识。如果有人可以指出以下信息来源,我将不胜感激:

  • 图像理论(各种图像格式如何工作jpeg,png,tiff等)。
  • 调整大小后图像如何失去清晰度?是否有一些
  • 是否有任何免费的.Net(我正在使用4.0)库来执行此操作?如果不能,我可以使用任何具有com互操作性的库吗?

  • 非常感谢,

    最佳答案

    图像调整大小是内置在.NET框架中的功能。有两种不同的方法:

  • GDI +
  • WIC
  • WPF

  • 这是一个很好的blog post,涵盖了它们之间的差异。

    这是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);
            }
        }
    }
    

    关于c#-4.0 - 使用C#调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137979/

    相关文章:

    java - 从 Windows 和 Linux 读取文件会产生不同的结果(字符编码?)

    r - 如何保存 Shiny 图的 png 图像,使其与屏幕上的尺寸相匹配?

    c++ - 原始 RGB 值到 JPEG

    iOS - 从 UIImage 检索 EXIF UserComment

    c# - 动态关键字 C# 4.0

    javascript - 在 .Net Web App 中上传(使用 JSZIP)时,需要从客户端计算机压缩所选文件。压缩文件应上传到服务器位置

    c# - 有没有一种方法可以在不提供任何 C# 信息的情况下在网络上找到 Active Directory?

    java - 将所有图像转换为 PNG

    c - EXIF分数计算

    c# - C#中如何从Treeview的选定节点中获取下一个直接节点?