Java: Как написать собственный тег (заметка программиста) в файле JPEG

1

Мне интересно написать несколько новых пользовательских тегов в файле jpeg. Я использую библиотеки "org.apache.commons.imaging" для работы с метаданными jpeg в java. Я просто не знаю, как определить новый настраиваемый тег; напишите его, а затем прочитайте значение тега позже.

Вот мой код, который читает файл jpeg и выводит результат.

public void setExifCustomTag(final File jpegImageFile, final File dst) throws IOException,
        ImageReadException, ImageWriteException {
    OutputStream os = null;
    boolean canThrow = false;
    try {
        TiffOutputSet outputSet = null;

        final IImageMetadata metadata = Imaging.getMetadata(jpegImageFile);
        final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
        if (null != jpegMetadata) {
            // note that exif might be null if no Exif metadata is found.
            final TiffImageMetadata exif = jpegMetadata.getExif();

            if (null != exif) {
                outputSet = exif.getOutputSet();
            }
        }
        if (null == outputSet) {
            outputSet = new TiffOutputSet();
        }



        TagInfoAscii tag1 = new TagInfoAscii("custom tag", 1, 20, TiffDirectoryType.EXIF_DIRECTORY_MAKER_NOTES);
        outputSet.getExifDirectory().add(tag1, "custom value");

        TiffOutputField to = outputSet.findField(tag1);
        //How should I read the value ???????????????

        os = new FileOutputStream(dst);
        os = new BufferedOutputStream(os);

        new ExifRewriter().updateExifMetadataLossless(jpegImageFile, os,
                outputSet);
        canThrow = true;
    } finally {
        IoUtils.closeQuietly(canThrow, os);
    }
}
Теги:
metadata
jpeg
exif
imaging

1 ответ

2

Я не мог сделать это как комментарий, поэтому я должен пойти сюда:

Ваш вопрос нуждается в некоторых разъяснениях. Существует множество форматов файлов JPEG. Процесс записи пользовательских тегов [вид] варьируется в зависимости от этих форматов.

Вы можете написать маркер COM с текстом в любом файле JPEG. Вы можете написать маркетинг APPn с любым желаемым файлом JPEG, если вы не используете один из маркеров APPn, используемый конкретным файловым форматом.

В Exif существует тег UserComment, который вы можете использовать для своих собственных данных.

В вашем примере предполагается, что EXIF - это формат файла.

  • 0
    Тег UserComment работает для меня.
  • 1
    я слишком долго

Ещё вопросы

Сообщество Overcoder
Наверх
Меню