2010-03-29 13 views
8

Tôi có mã thư viện ảnh để chỉnh sửa kích thước hình ảnh và tạo hình thu nhỏ. Tôi sử dụng ImageMagick để làm điều này. Tôi đã chạy một trang thư viện thông qua công cụ Tốc độ trang của Google và nó cho thấy rằng các hình ảnh và hình thu nhỏ có kích thước lại có thêm khoảng 10KB dữ liệu (các tệp JPEG cụ thể).Tối ưu hóa kích thước tệp JPG - PHP, ImageMagick và tốc độ trang của Google

Tôi có thể thêm gì vào tập lệnh của mình để tối ưu hóa kích thước tệp?


THÔNG TIN BỔ SUNG

Tôi đang sử dụng bộ lọc imagick::FILTER_LANCZOS với một khung cảnh mờ của 0.9 khi gọi resizeImage() chức năng. JPEG có cài đặt chất lượng là 80.

+0

Bạn đang đưa ra đối số cho ImageMagick? – asgerhallas

+0

Đã cập nhật câu hỏi của tôi để giải quyết các cài đặt/đối số. Sự hiểu biết của tôi là tốc độ trang của Google loại bỏ 10KB thông tin một cách mất dữ liệu, nó không nén hình ảnh nữa. Có siêu dữ liệu tôi có thể loại bỏ bằng cách nào đó không? – Sonny

Trả lời

10

Tôi đã tìm thấy câu hỏi SO này, "Tools for JPEG optimization?", có một số thông tin tốt, nhưng các giải pháp nằm ngoài PHP. Sử dụng những gợi ý từ các giải pháp của câu hỏi mà tôi phát hiện ra rằng có hai tối ưu hóa lossless mà có thể được thực hiện:

  1. Tối ưu hóa của Huffman bảng mã hóa
  2. diệt của siêu dữ liệu (EXIF, vv)

Cả hai có thể được thực hiện với ImageMagick theo cách này:

  1. ImageMagick documentation, bảng mã Huffman tối ưu được tính theo mặc định. Bước này đã được thực hiện chăm sóc, yay!
  2. Loại bỏ meta-data có thể được thực hiện rất đơn giản bằng cách sử dụng phương thức stripImage().

Một hình ảnh tôi đã thử nghiệm đã giảm 12KB. Các tập tin 600x450 đã đi từ 63,42KB đến 51,42KB, và hình thu nhỏ 140x105 đã đi từ 17,98KB đến 5,98KB.

3

Chạy hình ảnh của bạn thông qua dịch vụ SmushIt của Yahoo, nơi các hình ảnh được chuyển đổi sang PNG với số màu chính xác. Không mất chất lượng, nhưng giảm cân :)

+1

Đó là một công cụ khéo léo. Nó không giống như họ có nó thiết lập như một dịch vụ không may. – Sonny