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

本文关键字:Python 缩小 调整 文件大小 图像 | 更新日期: 2023-09-27 18:20:52

我刚刚在Python2.7中使用PIL环境编写了一个简单的图像调整器。因为我想要一个漂亮快速的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#中减少图像的文件大小?

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

根据图像的类型,您可以设置其他属性。例如,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,以确定每种格式支持哪些参数。

您可以尝试用不同的格式保存它。

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