2014-09-05 282 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