2015-11-12 104 views
4

我試圖在保持寬高比的同時調整圖像大小。我使用PIL的縮略圖方法。我使用Image.ANTIALIAS過濾器。Python PIL縮略圖和Image.ANTIALIAS。如何保持質量

你可以在這裏查看我的代碼:

 image = Image.open(design.design.path) 
     format = image.format 
     image = ImageOps.mirror(image) 
     new_size = (241, 241) 
     image.thumbnail(new_size, Image.ANTIALIAS) 
     image.save(response, format) 

此代碼的工作完美但質量縮略圖後丟失。通過放大保存的圖像,我可以看到它。我可以在圖像的角落看到像素,而不會看到原始圖像。當我打印調整大小的圖像時,這看起來更好。

你可以看看這裏的樣品圖片:http://imgur.com/a/ifZoU

請告訴我,如果你需要什麼

+0

你使圖像更小或更大?無論哪種方式,我建議使用'resize'方法而不是'thumbnail'方法 –

+0

@JamesKent我讓他們變小。我使用縮略圖而不是調整大小來保持寬高比。調整大小不會保留寬高比。 – Marijus

+0

爲什麼'resize'不能保留寬高比?您將寬高比硬編碼爲1:1,如果您使用「resize」,那麼寬高比也將是寬高比。 – physicalattraction

回答

0

如果你正在一個基於像素的圖像的縮略圖,你當然會失去質量。重新調整這種圖像的大小(與矢量圖像相反)只是簡單地丟棄信息 - 無法恢復它。

如果您需要查看全尺寸圖像,您必須保留原始圖像,並保持縮小版本只顯示在需要的位置 - 將原始圖像用於其他任何圖像。

https://en.wikipedia.org/wiki/Raster_graphics

1

Image.save對你選擇:

img.save(fpath, 'image/png', quality=100, optimize=True) 
+0

我試過質量和優化選項,但他們沒有幫助。 – Marijus

+0

嗯,我想這是關於調整大小和放鬆質量而不是壓縮問題 – Farsheed