Tôi đang tìm cách ghi siêu dữ liệu tùy chỉnh vào hình ảnh (chủ yếu là jpeg, nhưng cũng có thể là những hình ảnh khác). Cho đến nay tôi đã không thể làm điều đó thông qua PIL tốt hơn (tôi đang ở trên centos 5 & Tôi không thể cài đặt pyexiv) Tôi hiểu rằng tôi có thể cập nhật một số thẻ được xác định trước, nhưng tôi cần phải tạo các trường tùy chỉnh/tags! Điều đó có thể được thực hiện?Viết siêu dữ liệu tùy chỉnh phức tạp trên hình ảnh qua python
Dữ liệu này sẽ được tạo bởi người dùng, vì vậy tôi sẽ không biết các thẻ đó là gì trước khi bàn tay hoặc những gì chúng chứa. Tôi cần cho phép họ tạo thẻ/thẻ phụ & rồi ghi dữ liệu cho họ. Ví dụ, ai đó có thể muốn tạo siêu dữ liệu này trên một hình ảnh cụ thể:
Category : Human
Physical :
skin_type : smooth
complexion : fair
eye_color: blue
beard: yes
beard_color: brown
age: mid
Location :
city: london
terrain: grass
buildings: old
Tôi cũng phát hiện ra rằng khi tiết kiệm một jpeg qua PIL JpegImagePlugin, tất cả các siêu dữ liệu trước đó được ghi đè bằng dữ liệu mới mà bạn không nhận được để chỉnh sửa? Đó có phải là một lỗi không?
Chúc mừng, S
Rất cám ơn cho điều này ! Trên thực tế, với pyexiv2, tôi thậm chí có thể viết tùy chỉnh metadata: ' pyexiv2.xmp.register_namespace ('/', 'tùy chỉnh') metadata [ 'Xmp.custom.category'] = 'Nhân' ' Nhưng vấn đề là trên (centos 5 + python2.6), tôi không thể có được pyexiv2 cài đặt với tất cả các phụ thuộc của nó: P Vì vậy, tôi đang cố gắng để xem nếu PIL làm việc cho tôi! – Saurabh
Cảm ơn bạn đã cho biết cách tạo thẻ tùy chỉnh. Xin lỗi tôi không biết nhiều về CentOS (và tôi giả sử bạn đã thử 'yum install pyexiv2'.) Thật không may, AFAIK, PIL 1.1.7 [có thể đọc nhưng không viết siêu dữ liệu EXIF] (http://stackoverflow.com/ a/1608545/190597) và [hỗ trợ ghi EXIF chưa được thêm vào PIL 1.2] (https://bitbucket.org/effbot/pil-2009-raclette/src/cd403356263f/CHANGES). – unutbu
Bạn nói đúng. Tôi từ bỏ PIL. Nhưng tôi đã chấp nhận bài viết trước của bạn như là câu trả lời của tôi vì nó mang lại cho tôi một nền tảng công bằng để tiếp tục! Cảm ơn! – Saurabh