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

时间:2014-09-05 18:08:51

标签: c# system.drawing

我刚刚使用PIL环境在Python 2.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#添加了一些不必要的信息。

如何在C#中减少图像的文件大小,就像在Python中一样?

2 个答案:

答案 0 :(得分:2)

根据图像类型,您可以设置其他属性。例如Jpeg有一个&#34;质量&#34;设置,您可以在保存图像时指定。例如,请参阅msdn.microsoft.com/en-us/library/bb882583(v = vs.110).aspx

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

答案 1 :(得分:0)

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

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