代码之家  ›  专栏  ›  技术社区  ›  michaeln

图像大小调整-文件大小不会像Python那样缩小

  •  0
  • michaeln  · 技术社区  · 10 年前

    我刚刚使用PIL环境在Python2.7中编写了一个简单的图像大小调整器。因为我想要一个漂亮而快速的GUI,所以我决定将其移植到C#。我的Python代码如下

    k = I.open(f)
    h = int(k.size[1] / float(k.size[0]) * maxWidth)
    s = (maxWidth, h) if maxWidth < k.size[0] else k.size #only care about landscape
    k = k.resize(s, I.ANTIALIAS)
    k.save(os.path.join(outdir, i))
    

    而我的C#端口看起来像这样

    Bitmap bitmap = new Bitmap(image, w, h); //image = Image.FromFile()
    bitmap.Save(destPath);  //disposing later in the code
    

    我遇到了一些奇怪的文件大小问题。使用Python,我将图像大小调整为大约1500x1000像素,文件大小大约为180kB。我的C#应用程序以1500x1000像素创建的文件大约有2000kB大,所以我想C#添加了一些不必要的信息。

    我怎样才能像在Python中那样在C#中减小图像的文件大小?

    2 回复  |  直到 10 年前
        1
  •  2
  •   C.Evenhuis    10 年前

    根据图像的类型,可以设置其他财产。例如,Jpeg有一个“质量”设置,您可以在保存图像时指定。例如,请参见msdn.microsoft.com/en-us/library/bb882583(v=vs.110).aspx

    注意,这些 EncoderParameters 不同的文件格式。看见 http://msdn.microsoft.com/en-us/library/bb882589(v=vs.110).aspx 以确定每个格式支持哪些参数。

        2
  •  0
  •   GER    10 年前

    您可以尝试以其他格式保存它。

    bitmap.Save("C:\temp",ImageFormat.Jpeg);