2013-10-11 42 views
1

我試圖從url中將圖片保存到數據存儲區。不幸的是,我的應用遇到了相當小的PNG文件,大於1MB。如何壓縮從url中獲取的PNG圖像而不更改其尺寸

這將是確定備考更改爲JPG

def save_image_from_url(url): 
    image = urllib2.urlopen(url).read() 

    if len(image)>1000000: 
     # MAKE FILESIZE <1MB 
     # WITHOUT CHANGING DIMENSTIONS 

    picture = classes.Pictures(picture=image) 
    picture.put() 

    return str(picture.key.id()) 

編輯:我寧願使用from google.appengine.api import images

回答

0

你可以使用:

images.crop(image, 0.0, 1.0, 1.0, 0.0, output_encoding=images.JPEG) 

這應該是裁剪到原來的大小,在85%的質量,將其轉換爲JPEG(如果我已經得到了0.0和1.0的順序值正確)

+0

是的,這似乎更具成本效益。謝謝 –

1

好吧,我想通了。

if len(image)>1000000: 
    temp = images.Image(image) 
    image = images.resize(
     image, 
     width=temp.width, 
     output_encoding=images.JPEG, 
     quality=80 
    ) 
+0

檔案大小減少90% –