У меня проблемы с преобразованием изображения .HEIC в формат JPEG. Файл .HEIC — это изображение, снятое на iphone с последней публичной бета-версией ios. Я использую библиотека нокиа при условии чтобы проанализировать файл и извлечь фрагменты изображения из файла .HEIC, конвертируйте их в формат jpeg и склейте их вместе, используя ffmpeg / montage.
Там слишком много кода, чтобы вставить все это в этот вопрос, поэтому я положил все это в этом GitHub РЕПО. Это довольно понятно и должно быть работоспособным с несколькими зависимостями. Они объяснены в README репо. Это все было сделано на OSX кстати.
Файлы .HEIC содержат сетку изображений (плиток) размером 8×6, и если вы соберете их вместе, вы получите полное изображение. Просто поместите любое изображение, которое я ввел, 7-й фрагмент поврежден, как показано ниже, и я действительно не понимаю, почему. Я подал проблему с nokia, но репозиторий кажется довольно мертвым, и я не ожидаю ответа там.
В наборе параметров VPS / SPS / PPS в 7-м тайле есть ошибка. Я не отслеживал, лежит ли проблема в самом файле или в синтаксическом анализаторе HEIF, но тем временем существует простой обходной путь.
Обратитесь к HevcImageFileReader :: getItemDataWithDecoderParameters и посмотрите, как он добавляет наборы параметров к фактическим данным элемента для каждой плитки.
Все, что вам нужно сделать, это прочитать наборы параметров для первого тайла и повторно использовать их для последующих тайлов, а не перечитывать их. Это будет работать вокруг поврежденных параметров, идущих от 7-го тайла. Это кажется безопасным, поскольку это формат сетки, и требование состоит в том, чтобы каждая плитка была идентичной.
Других решений пока нет …