2012-03-08 35 views
5

Câu hỏi này không phải là về mã cho hình ảnh cắt.php crop hình ảnh thực sự lớn

Tôi biết cách hoạt động của nó.

Đó chỉ là câu hỏi về việc xử lý ảnh rất lớn với PHP thư viện ảnh (GD hoặc ImageMagick?).

Ví dụ: tôi lấy một tệp thực sự lớn (5000 x 35000 pixel) 8 bit màu 3 chanels bộ nhớ cần thiết chỉ để tải bộ nhớ này vào bộ nhớ là aprx. 50 Mo!

Bây giờ, tôi muốn làm hành động này (chỉ là ví dụ):


  • tôi muốn để có được những khu vực ở góc dưới bên, với kích thước (600 x 600) pixel.
  • trên một phần hình ảnh này, tôi muốn thêm một thẻ đồ họa (không phải lo lắng về vấn đề này tôi biết)
  • và sau đó, tôi muốn viết phần này trong file gốc.

Tôi nghĩ rằng, các quy trình làm việc phải được điều này:

  1. đọc các byte gốc từ bức tranh lớn (chỉ cho get tập tin phần de)

  2. làm việc trên một phần tập tin

  3. viết một phần vào hình ảnh lớn.

Tất cả có dấu chân bộ nhớ nhỏ.

Bạn có thể giúp tôi viết mã này (hoặc liên kết tới tài nguyên)

cảm ơn rất nhiều.

Trả lời

0

tôi sẽ nhìn vào một cái gì đó giống như http://phpthumb.sourceforge.net/

Tôi chưa bao giờ sử dụng nó cho hình ảnh quá lớn trước đó, nhưng trên trang chủ nó nói "ImageMagick (nếu có) có thể được gọi để tạo ra hình thu nhỏ cho hình ảnh lớn hơn nguồn hơn giới hạn bộ nhớ của PHP sẽ cho phép trình thu nhỏ chỉ GD thực hiện hoặc cho các định dạng hình ảnh mà GD không hỗ trợ. "

0

Hãy thử thêm điều này trước khi thay đổi kích thước của bạn:

ini_set('memory_limit', '128M'); 
0

PHP không được thiết kế cho số crunching.

Chỉnh sửa hình ảnh liên quan đến rất nhiều số crunching.

Bất kỳ giải pháp nào đều phải là nguồn gốc để thấy sự khác biệt đáng kể về hiệu suất. Sử dụng ImageMagick nếu bạn có thể.

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