2012-04-25 35 views
6

tôi sử dụng python để lưu JPEG trong một chất lượng nhỏ hơnPython PIL jpeg chất lượng

im = Image.open(file) 
im.save(cached_file, quality=80, optimize=True, progressive=True) 

Trong tuy nhiên một số hình ảnh, kích thước tập tin của hình ảnh mới là lớn hơn so với bản gốc của Làm thế nào điều này có thể xảy ra? Cảm ơn

+0

Cung cấp ví dụ về trường hợp này sẽ hữu ích. –

Trả lời

7

Có thể hình ảnh gốc đã được lưu với chất lượng < 80 không? Vì vậy, về cơ bản bạn đang sử dụng nhiều không gian hơn để lưu các hiện vật của việc tái thiết?

+0

Có cách nào để xác định chất lượng của hình ảnh gốc và chỉ tiến hành quy trình nếu nó nhỏ hơn? – Thomas

+1

Tôi chỉ xem xét một số tài liệu PIL - http://www.pythonware.com/library/pil/handbook/format-jpeg.htm Dường như chất lượng mặc định là 75, điều này sẽ gợi ý rằng nếu bạn đọc một hình ảnh đã được cứu bởi PIL mà không có một đặc tính chất lượng, tình hình tôi đưa ra giả thuyết có thể xảy ra. Rõ ràng, khi đọc một JPEG, chất lượng không được biết đến. Tôi nghi ngờ cách duy nhất để biết trước là tìm hiểu thêm về mã hóa JPEG. Có lẽ bạn sẽ ổn với việc so sánh tập tin mới được lưu với bản gốc và sau đó quyết định cái nào cần giữ? – user1245262

+0

Thực ra, tôi đã nghĩ về những gì bạn đang gợi ý và có thể sẽ theo nó, nhưng tôi nghĩ tôi sẽ hỏi xem liệu có cách nào tối ưu hơn để xử lý nó không. Cảm ơn – Thomas

Các vấn đề liên quan