Как преобразовать изображение HEIF/HEIC в JPEG в macOS?

Итак, вот в чем дело. У меня есть новый iPhone и старый Mac. iOS 11 (на сегодняшний день все еще находится в бета-версии) и El Capitan (для этого Mac больше нет обновлений). Я использую библиотеку фотографий iCloud на обоих устройствах. Когда я делаю фотографию в новом формате на своем iPhone 7, есть ли способ использовать ее сразу на моем Mac без необходимости сначала конвертировать ее на моем iPhone? Я имею в виду, могу ли я синхронизировать эти фотографии через iCloud и преобразовать их локально на моем Mac?

Я пытался найти стороннее программное обеспечение, которое могло бы выполнять такое преобразование, но не смог найти ничего, что работало бы на El Capitan. Есть идеи?

Вы должны иметь возможность конвертировать фотографии HEIF при экспорте. Вы пробовали это?
Я все еще пытаюсь понять механику этого. Я установил его на автоматический в iPhone. Но я получил пару файлов heic в приложении «Фотографии» через синхронизацию iCloud Photo Library, а также при загрузке с веб-сайта iCloud. Я предполагаю, что крик веб-сайта позволяет нам экспортировать JPEG. И было бы неплохо иметь то же самое в приложении «Фотографии», в El Capitan.
Я хотел бы начать использовать новый формат, чтобы сэкономить место, но у меня все еще есть способ получить доступ к моим фотографиям с моего нынешнего Mac.
Ну... Теперь я смог загрузить JPG-версию фотографии HEIC с веб-сайта iCloud. Не уверен, изменил ли я что-то в своих настройках с момента последней попытки. Но приложение «Фотографии» по-прежнему сообщает о синхронизированном файле (а не о том, который я скачал) как о .HEIC. И если я попытаюсь экспортировать его, это не сработает. Экспортируются только JPG. Что странно, потому что фотография нормально отображается в приложении для фотографий.
Существует приложение под названием Graphic Converter, но оно не поддерживает эти форматы. Возможно, вы захотите следить за этим. < lemkesoft.de/en/products/graphicconverter/key-features/… >
@Mark, да, это была одна из моих первых мыслей, но кажется, что их преобразование HEIC — это функция, которая работает только в более поздних ОС.
Вы пробовали захват изображений?
@IconDaemon Я не думаю, что Image Capture может преобразовывать типы файлов. Он, конечно, не может открывать файлы изображений, уже находящиеся в файловой системе компьютера. Помните, что мои фотофайлы уже хранятся на компьютере, потому что я использую библиотеку фотографий iCloud. Кроме того, я использую «Оптимизированное хранилище» на обоих устройствах, поэтому фактический исходный файл изображения обычно находится на сервере iCloud, а не обязательно на одном из моих устройств.
Как ни странно, теперь у меня в библиотеке есть несколько фотографий HEIC, и когда я пытаюсь загрузить их с веб-сайта iCloud, по крайней мере одна из них выходит в формате JPG, но большинство загружаются в формате HEIC. Я пробовал это как минимум на трех разных компьютерах Mac с El Capitan. По каким критериям сервер решает, будет ли он отправлять нам файл JPG или HEIC?
Единственный способ, которым я смог получить частичное решение этой проблемы, до сих пор заключался в том, чтобы перейти на веб-сайт iCloud, «Фотографии», затем выбрать одну из фотографий и щелкнуть ссылку «Поделиться» вверху (квадрат со стрелкой, указывающей вверх) . Затем выберите «электронная почта». Откроется всплывающее окно с фотографией внутри. В это время вы можете перетащить эту фотографию на рабочий стол, и вы получите JPG. Это не полное разрешение, но, вероятно, подойдет для Интернета и других целей, не требующих изображения с полным разрешением.
Теперь еще одна очень странная проблема заключается в том, что кнопка «Поделиться» в веб-приложении «Фотографии» на веб-сайте iCloud не отображается на каждом компьютере, даже если все они используют El Capitan ... Разве такая функция не должна аппаратно-независимый?
@IconDaemon При импорте фотографий с помощью кабеля, с помощью приложения «Фотографии» или «Захват изображения» фотографии HEIC отображаются и импортируются в виде файлов JPG (я установил для него значение «Автоматически» в настройках iPhone). Это может быть обходной путь для недавних фотографий, но все же не решение для фотографий, которые были получены через синхронизацию iCloud и могут больше не быть локально доступны на iPhone...
sips -s format JPEG myfile.heic --out myfile.jpg
И многофайловая версия: for i in *.HEIC; do sips -s format JPEG "${i}" --out "${i%HEIC}JPG"; done(из robservatory.com/… )
sipsна El Capitan не работает для преобразования изображений HEIC.
@PatNiemeyer и @dmon должны быть sips -s format jpegв нижнем регистре jpeg. Верхний регистр дает Error: Unsupported output format JPEG(sips-294 на MacOS Catalina 10.15.5)
Попробуйте jpeg (нижний регистр) вместо JPEG (верхний регистр) в команде sips. У меня так работало на macOS ventura.

Ответы (8)

Мы только что выпустили это небольшое бесплатное приложение для macOS: https://imazing.com/heic

Минимальная версия macOS — 10.8 , так что с El Capitan не стоит беспокоиться. :)

введите описание изображения здесь

Этот инструмент также сохраняет данные EXIF, и это здорово!
В последнее время не работает

Вы можете использовать инструмент командной строки imagemagickдля преобразования изображений HEIC в JPG.

# install imagemagick
brew install imagemagick

# convert a single image
magick convert foo.HEIC foo.jpg

# bulk convert multiple images
magick mogrify -monitor -format jpg *.HEIC
Что означает «конвертировать: нет делегата декодирования для этого формата изображения `HEIC»?
@gap, ваше сообщение об ошибке означает, что у вас не установлены нужные программы для работы с форматом HEIC. brew upgrade imagemagickрешил эту проблему для меня.
@пробел Не уверен. В моей первоначальной команде установки была дополнительная опция: brew install imagemagick --with-libheif, но другие сказали, что она больше не нужна. Вы могли бы попробовать. Возможно, это имеет значение в зависимости от вашей версии OSX.
@wisbucky, что касается моего неудаленного ответа: вы были правы. не уверен, что происходило раньше. Спасибо за ответ. 👍
Идеальный! работал на меня
Вам нужно libde265использовать HEIC с ImageMagick... stackoverflow.com/a/54558699/2836621

Собственный для macOS способ преобразования изображений, подобный этому, по-видимому sips(1)(поднятие комментариев Пэта Нимейера и Джонатана до надлежащего статуса ответа для улучшения возможности поиска):

sips -s format jpeg myfile.heic --out myfile.jpg

Итак, если у вас есть каталог, полный файлов HEIC, вы можете запустить терминал macOS Big Sur, где, если вы запустите оболочку Zsh по умолчанию, вы можете сделать jpeg-копии всех этих файлов следующим образом:

for i in *.heic(:r) ; sips -s format jpeg "$i.heic" --out "$i.jpg"

…и вуаля, у вас есть копии в формате jpeg!

Если вы хотите также взорвать оригиналы, используйте rm *.heic- или вместо этого используйте этот вариант:

for i in *.heic(:r) ; sips -s format jpeg "$i.heic" --out "$i.jpg" && rm "$1.heic"

…и интеграцию подсказки Джоша Хибшмана для сохранения временных меток:

find . -type f -iname '*.heic' | while read i do \
  fileNoExt="${i%.*}"; \
  jpgFile="${fileNoExt}_heic_conv.jpg"; \
  sips -s format jpeg "$i" --out "$jpgFile"; \
  touch -r "$i" "$jpgFile"; \
  rm "$i"; \
done
Без сомнения, это должен быть окончательный ответ. Никакого дополнительного программного обеспечения не нужно устанавливать, настолько просто, насколько это возможно.
Когда я пытаюсь это сделать, bashя получаю Warning: .heic not a valid file - skipping. Решение imagemagickработает для меня.
Что делает (:r)квалификатор?
(:r)— это функция генерации имен файлов zsh, которая удаляет расширение имени файла из совпадений, поэтому *.heic(:r)будет соответствовать файлам примеров a.heicи b.heicфайлам a b.
Рекомендую добавлять touch -r myfile.heic myfile.jpgдля копирования по созданным и измененным датам.. или вообще с переименованиемfind . -type f -iname '*.HEIC' | while read i do fileNoExt="${i%.*}"; jpgFile="${fileNoExt}_heic_conv.JPG"; sips -s format jpeg "$i" --out "$jpgFile"; touch -r "$i" "$jpgFile"; rm "$i"; done
Как мы можем сопоставить файлы *.heic и *.HEIC в цикле for?
Используя последнюю команду ( find ...), я получил «ошибка синтаксического анализа почти завершена». Мне пришлось добавить точку с запятой после «прочитать i», поэтому первая строка читаетсяfind . -type f -iname '*.heic' | while read i; do

Используйте встроенное быстрое действие macOS «Преобразовать изображение», чтобы легко конвертировать изображения HEIC в JPEG.

Быстрое действие «Преобразовать изображение»

пункт контекстного меню открывает небольшую утилиту для преобразования в различные форматы и размеры:

Преобразовать изображение

это элегантно!
Хм, я так и сделал, и это сработало. Но изображение в низком качестве, хотя я выбрал «фактический размер». Кроме того: теперь, когда я копирую любое другое изображение из приложения «Фотографии» в новую папку в Finder, оно автоматически имеет «низкое» качество и формат «.jpeg» вместо «.heic». Вы знаете, как вернуть это?

Я считаю, что Dropbox — хороший инструмент для конвертации, поскольку он делает это прозрачно для использования в любой операционной системе и на любой платформе.

Когда вы делаете снимок с iPhone, Dropbox автоматически конвертирует .heicизображение в .jpgформат при загрузке на компьютер ( контролируется настройками ). Поскольку я использую как ОС Windows, так и MacOS, нет необходимости устанавливать отдельные дополнительные приложения.

Ниже онлайн-инструмент преобразования (веб-браузер): не поддерживает пакетную обработку, но будет работать в широком диапазоне систем, включая ОС не Apple.

http://heictojpg.com/

Этот веб-сайт теперь позволяет загружать до 50 изображений одновременно.
Имейте в виду: вы загружаете свои фотографии в сторонний облачный сервис (и у вас нет гарантии, что они потом их удалят). Не используйте его для личных вещей,

Отличным инструментом командной строки, который очень хорошо работает, является tifig . Его можно легко скомпилировать на нескольких платформах. Он должен компилироваться на любой платформе с относительно современным набором инструментов разработки, который должен включать El Capitan!

Я следовал инструкциям в репозитории по установке tifigс помощью brew install cmake vips ffmpeg(из репозитория), но, похоже, это не работает ( tifig command not found).
Я не знаю, сделали вы это или нет, но вы также должны следовать инструкциям по сборке. Чтобы выполнить внутри папки сборки после сборки, просто запустите./tifig -v -p file.heic file.jpg
Можно ли предоставить демонстрационную установку и использование, чтобы превратить это в более полный ответ? В нынешнем виде это больше комментарий.

мои два цента для Каталины.

Я устал использовать строку cmd...

Я написал маленькое приложение... если интересно. это бесплатно:

https://apps.apple.com/us/app/heictojpeg/id1486256731?ls=1&mt=12

надеюсь может быть полезно :)

и теперь готов к AppleSilicon