2012-07-30 46 views
5

Tôi đã hỏi các câu hỏi tương tự trước đây, nhưng chưa nhận được câu trả lời dứt khoát. Dường như phải có cách để thêm/sửa đổi siêu dữ liệu vào một hình ảnh mà không cần tải hình ảnh vào bộ nhớ mà không phải xử lý trực tiếp các bit đọc.Làm thế nào để viết hoặc sửa đổi dữ liệu EXIF ​​cho một hình ảnh hiện có trên hệ thống tập tin, mà không cần tải hình ảnh?

Có vẻ như cách tồn tại khi sử dụng CMSampleBufferRef s, nhưng tôi cần để có thể làm điều này với một hình ảnh thông thường đã được lưu vào đĩa. Ví dụ:
Ví dụ: được cung cấp png rất lớn tại /Documents/photo.png, tôi muốn sửa đổi siêu dữ liệu exif của mình mà không phải tải hình ảnh đó.

+1

Liên quan: [Có cách nào dễ dàng để chỉnh sửa dữ liệu đánh dấu jpeg tại chỗ không?] (Http://stackoverflow.com/q/10508410/85950) – blahdiblah

+1

Vì @ H2CO3 cung cấp cho bạn giải pháp duy nhất bạn có thể sử dụng (Tôi không có), hãy chấp nhận câu trả lời của anh ấy. –

+0

Cũng xin lưu ý rằng nếu bạn không chấp nhận bất kỳ câu trả lời nào, bạn vẫn sẽ không nhận được giá trị của tiền thưởng. Vì vậy, nó sẽ chỉ là một lợi ích cho một trong những người trả lời nếu bạn chấp nhận một trong những câu trả lời. :) –

Trả lời

9

Bạn có thể sử dụng libexif - Tôi đã thành công với việc biên dịch nó cho iOS trước đây. Với libexif, bạn có thể sửa đổi bất kỳ siêu dữ liệu EXIF ​​nào của hình ảnh.

+0

Chắc chắn, nhưng khung công tác này có tải hình ảnh vào bộ nhớ trước không? – akaru

+0

không phải toàn bộ hình ảnh, mà là siêu dữ liệu EXIF. –

+0

Tốt. Bạn có thể cung cấp một ví dụ về cách sử dụng như vậy với libexif? tức là tải siêu dữ liệu và ghi lại tệp đó. – akaru

0

Nếu bạn biết cách sửa đổi EXIF, bạn có thể sửa đổi dữ liệu nhị phân trực tiếp từ tệp. Chỉ cần thay thế trong hình ảnh phần nhị phân bằng phần mới. Tôi không biết nếu khách quan-c cho phép điều này, nhưng trong ansi c nên được đơn giản. Phần phức tạp là xác định phần chính xác để thay đổi.

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