我使用PIL縮放範圍從600px寬到2400px寬到200px寬的圖像。我已經納入Image.ANTIALIAS
並設置quality=95
嘗試獲得儘可能高質量的圖像。PIL:縮放圖像,同時保持儘可能高的質量
然而,與原件相比,按比例縮小的圖像仍然質量相當差。
下面是我使用的代碼:
# Open the original image
fp = urllib.urlopen(image_path)
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
im = im.convert('RGB')
# Resize the image
resized_image = ImageOps.fit(im, size, Image.ANTIALIAS)
# Save the image
resized_image_object = cStringIO.StringIO()
resized_image.save(resized_image_object, image_type, quality=95)
什麼,同時保留儘可能多的圖像質量越好的規模沿着這些比率的圖像的最佳方式?
我應該注意到我的主要目標是獲得最高質量的圖像。我並不十分關心這個過程如何有效率。
我們能看到一些例子嗎?即原始圖像,用您的腳本製作的縮小圖像,以及用Photoshop製作的比例縮小的圖像? – kindall
通常情況下,您最好通過遍歷結果圖像中的像素區域並查看它們在原始圖像中映射回的區域。這對旋轉更重要,但它也可能與完全任意縮放相關。 – Jiminion
您展示的代碼可能是PIL可以做的最好的代碼 - 您正在轉換爲RGB並使用ANTIALIAS。我最近發現ANTIALIAS實際上是Lanczos3算法,它被認爲是非常好的。我很想知道你在結果中找不到什麼? –