2014-09-05 218 views
0

我刚刚在Python 2.7中使用PIL环境编写了一个简单的图像调整大小。因为我想要一个漂亮而快速的GUI,我决定将它移植到C#。我的Python代码看起来像这样图像大小调整 - 文件大小不像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中像我可以在Python中减少图像的文件大小?

+1

设置质量的确有用。如果您可以通过链接回答问题,我会接受它作为正确的答案。 – michaeln 2014-09-05 18:57:01

回答

2

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

0

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

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

除了保存为JPEG之外,还可以指定JPEG质量。 – 2014-09-05 18:34:18

+1

Jpeg是与<未指定的问题>不同的格式吗? – 2014-09-05 18:37:43

+1

我不知道python或c#代码中的格式是什么,我会假定它的.bmp。这只是OP的一个尝试,如果我有更多的声望,我会在评论中提到它。 – GER 2014-09-05 18:40:23