我刚刚使用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中一样?
答案 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);