2008-09-18 19 views
5

Tôi đang gặp một chút vấn đề.Làm thế nào để bạn đặt thẻ EXIF ​​vào JPG, có bộ đệm jpeg thô trong C++?

Tôi nhận được bộ đệm RAW char * từ máy ảnh và tôi cần phải thêm thẻ này trước khi tôi có thể lưu nó vào đĩa. Viết tập tin vào đĩa và đọc lại nó không phải là một lựa chọn, vì điều này sẽ xảy ra hàng ngàn lần.

Dữ liệu đệm tôi nhận được từ máy ảnh không chứa bất kỳ thông tin EXIF ​​nào, ngoài chiều rộng, chiều cao và pixel trên mỗi inch.

Bất kỳ ý tưởng nào? (C++)

+0

➝ xem Bộ công cụ siêu dữ liệu XMP (Adobe, nhưng phần mở mã nguồn), cụ thể là XMPFiles ... –

Trả lời

4

Nhìn vào PDF này, trên trang 20 bạn có một sơ đồ cho thấy bạn đã đặt hoặc sửa đổi thông tin exif của bạn. Sự khác biệt với một tập tin trên đĩa là gì?

Bộ đệm JPEG của máy ảnh của bạn có chứa phần EXIF ​​chưa?

+0

Không có bộ đệm JPEG từ máy ảnh không chứa phần EXIF ​​ – Hannes

+0

Cảm ơn. Điều này giúp ... nó khác với tiêu chuẩn JFIF – Hannes

1

Sự khác biệt là gì? Tại sao làm nó vào một tập tin trên đĩa có khác gì khi thực hiện nó trong bộ nhớ?

Chỉ cần làm bất cứ điều gì bạn làm sau khi bạn đọc các tập tin từ đĩa ..

1

Theo như tôi biết dữ liệu EXIF ​​trong JPEG là phần nhỏ liên tục của các tập tin. Vì vậy

  1. chuẩn bị dữ liệu EXIF ​​trong bộ nhớ
  2. ghi một phần của tập tin JPEG tối đa EXIF ​​
  3. viết EXIF ​​chuẩn bị
  4. ghi phần còn lại của tập tin JPEG
1

Bạn có thể muốn xem qua thư viện Exiv2. Tôi biết nó có thể làm việc trên các tập tin nhưng tôi cho rằng nó cũng có chức năng để làm việc trên bộ nhớ đệm.

+0

Lưu ý rằng Exiv2 không miễn phí cho mục đích thương mại. –

+0

Đó là một sự hiểu lầm khủng khiếp thực sự. Exiv2 là GPL được cấp phép kép và thương mại. GPL có các yêu cầu của nó - có - nhưng không cấm bạn sử dụng nó trong các sản phẩm thương mại. –

+0

Xin lỗi về điều này. Vì vậy, có thể sử dụng Exiv2 như một phần của sản phẩm thương mại nếu tôi không sửa đổi các tệp nguồn Exiv2 (nhưng bao gồm các tệp tiêu đề từ tệp nguồn của tôi và liên kết đến các tệp nguồn của nó) không? –

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