2012-08-27 32 views
5

Tôi đang phát triển tập lệnh xử lý hình ảnh để thay đổi kích thước hình ảnh về cơ bản. Vấn đề là khi tôi tạo bản sao của hình ảnh đã được thay đổi kích thước, nó cũng không sao chép dữ liệu IPTC. Vì vậy, tôi đã kiểm tra các chức năng PHP IPTC (iptcparse và iptcembed) nhưng tôi khá bối rối. Sử dụng iptcparse rất đơn giản. Nó lấy tất cả dữ liệu vào một mảng và sau đó tôi in nó ra bằng print_r. Nhưng cái được cho là hữu dụng nhất là iptcembed vì nó cho phép bạn (như tên nói) nhúng IPTC vào hình ảnh của bạn. Xem ví dụ từ php.net Tôi không hiểu lắm. Tôi có phải tạo mảng của mình theo cách thủ công để nhúng nó vào hình ảnh mới không. Tôi đoán có một cách dễ dàng để chỉ sao chép một hình ảnh của dữ liệu IPTC và nhúng nó vào hình ảnh khác.Làm thế nào để sao chép dữ liệu IPTC từ một hình ảnh khác?

Mọi câu trả lời đều được hoan nghênh. Cảm ơn trước.

+2

Lý do bạn không nhận được dữ liệu IPTC trong mới hình ảnh là bởi vì hình ảnh được thay đổi kích thước được tạo ra từ một đối tượng hình ảnh trống của PHP để nó không kế thừa bất kỳ thông tin meta nào của hình ảnh cũ hơn. Ngoài ra, hãy xem http://stackoverflow.com/questions/24456/embedding-iptc-image-data-with-php-gd?rq=1 –

Trả lời

1

Tôi nghĩ, điều này khá đơn giản. Để lấy dữ liệu iptc từ hình ảnh cũ, bạn chỉ cần sử dụng các hàm getimagesize và iptcparse.

On php.net bạn tìm thấy ví dụ này để đạt được điều này

<?php 
$size = getimagesize('./test.jpg', $info); 
if(isset($info['APP13'])) 
{ 
    $iptc = iptcparse($info['APP13']); 
    var_dump($iptc); 
} 
?> 

Kết hợp mẫu này với các phương pháp iptcembed và bạn có mọi thứ bạn cần

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