2015-10-12 19 views
16

Tôi đang tối ưu hóa và Google khuyến nghị nén Lossless thành hình ảnh, tìm cách thực hiện điều này ở Django.Hình ảnh không nén nén trên django

Đây là những hình ảnh được chỉ định, tôi nghĩ rằng nó được thực hiện một cách hiệu quả cần phải triển khai toàn bộ hệ thống có thể sử dụng lớp trung gian tự hỏi liệu có ai đã làm điều này trước đây không. Đây là liên kết tới google analytics cho trangpeed https://developers.google.com/speed/pagespeed/insights/?url=www.kenyabuzz.com

Tối ưu hóa hình ảnh Việc định dạng và nén hình ảnh đúng cách có thể tiết kiệm nhiều byte dữ liệu. Tối ưu hóa các hình ảnh sau để giảm kích thước của chúng đi 627,3 KiB (giảm 74%).

Losslessly compressing http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg could save 594.3KiB (92% reduction). 
Losslessly compressing http://www.kenyabuzz.com/media/uploads/clients/new_tribe_2.jpg could save 25KiB (44% reduction). 
Losslessly compressing http://www.kenyabuzz.com/…a/uploads/clients/EthiopianAirlines2.jpg could save 3KiB (22% reduction). 
Losslessly compressing http://www.kenyabuzz.com/static/kb/images/Nightlife.Homepage.jpg could save 1.3KiB (2% reduction). 
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/blog.png could save 1.1KiB (43% reduction). 
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/twitter.png could save 969B (52% reduction). 
Losslessly compressing http://www.kenyabuzz.com/…der-Board---Email-Signature--Neutral.jpg could save 920B (2% reduction). 
Losslessly compressing http://www.kenyabuzz.com/static/kb/img/social/youtube.png could save 757B (31% reduction). 
+0

Theo liên kết https://developers.google.com/speed/docs/insights/OptimizeImages từ chính trang mà bạn tham chiếu cung cấp rất nhiều thông tin. Bạn đã đọc chưa? – mhawke

+0

Có, nhưng tôi không cung cấp thông tin về cách thực hiện tương tự với python hoặc Django. Tôi googled "Losslesly nén hình ảnh django" và không nhận được bất kỳ thông tin về điều này. –

+0

Tại sao lại ở Django - có một liên kết từ trang tối ưu hóa của Google cho phép Google thực hiện điều đó cho bạn. Lấy những hình ảnh đó, tải lên máy chủ, thu thập và hoàn thành. – professorDante

Trả lời

2

Tôi chưa có kinh nghiệm với nó, tuy nhiên, picopt trông toàn diện. Nó dựa nhiều vào các công cụ bên ngoài để thực hiện tối ưu hóa, do đó có thể khó thiết lập trong môi trường máy chủ bị hạn chế hoặc được lưu trữ.

Ngoài ra, hãy thử googling "tối ưu hóa hình ảnh python". Có một vài liên kết khác gợi ý rằng một giải pháp dựa PIL có thể là có thể, ví dụ:

  1. How to reduce the image file size using PIL
  2. Image Optimization (Google App Engine with Python)
3

Bạn nên cố gắng Django Easy Thumbnails app, nó có một số tùy chọn để thêm một sau xử lý để tối ưu hóa hình ảnh đã tải lên: PostProcessor documentation

Tôi sử dụng nó trong sản xuất trên một số dự án. Hoạt động tốt, kích thước hình ảnh là chắc chắn nhỏ hơn và tải trang nhanh hơn nhiều.

19

Nén không nén http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg có thể tiết kiệm được 594.3KiB (giảm 92%).

Trước hết, thông tin trong nhật ký khá gây nhầm lẫn vì không thể nén hình ảnh bằng 92% bằng định dạng không mất dữ liệu (trừ một số trường hợp như hình ảnh đơn màu, hình dạng hình học cơ bản như hình vuông, v.v.). Đọc this answerthis answer để biết thêm thông tin. Thực sự, hãy đọc chúng, cả hai đều là những câu trả lời tuyệt vời.

Thứ hai, bạn có thể sử dụng định dạng nén mất dữ liệu "mà không làm mất chất lượng" – sự khác biệt rất tinh tế, mắt người thậm chí không nhận thấy.


Vì vậy, tôi đã tải một hình ảnh từ trang web của bạn đang tối ưu hóa từ liên kết này: http://www.kenyabuzz.com/media/uploads/clients/kenya_buzz_2.jpg

Tôi mở console Python của tôi và viết này:

>>> from PIL import Image 

>>> # Open the image 
>>> im = Image.open("kenya_buzz_2.jpg") 
>>> # Now save it 
>>> im.save("kenya_buzz_compressed.jpg", format="JPEG", quality=70) 

này đã tạo ra một hình ảnh mới trên đĩa của tôi. Dưới đây là cả hai hình ảnh.

Gốc (655.3KB)

original image


nén (22.4kB ~ 96% giảm @ quality = 70)

compressed image using Python


Bạn có thể chơi xung quanh với các tùy chọn quality . Giống như, giá trị của 80 sẽ mang lại cho bạn hình ảnh chất lượng tốt hơn nhưng có kích thước lớn hơn một chút.

+2

Chính xác, tôi sẽ sử dụng phần này ở phần tải lên hoặc thứ gì đó giống như hình cắt dán cho hình ảnh tĩnh đơn giản. –

+0

Nó không hiệu quả với tôi. Tôi đã cố gắng để giảm một hình ảnh với 1MB nhưng tôi có một hình ảnh mới với 1,9MB: | –

+0

@ Overflow012 Bạn có đang đặt 'giá trị' chất lượng hơn '95' không? Điều đó đã được biết là tăng kích thước tệp. – xyres

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