Я проверил это с моим собственным необработанным входным изображением, и оно работает нормально.
Возможно, вы используете неправильную версию ImageMagick.
Я скачал версию: ImageMagick-7.0.8-49-Q8-x64-static.exe
с https://imagemagick.org/script/download.php.
В загруженной версии команда преобразования являетсяmagick.exe
, а не convert
.
Работает следующая команда:
magick.exe -size 768x576 -depth 8 rgb:my_image.raw my_image.jpeg
.
Я предпочитаю использовать FFmpeg
для преобразования формата.
Вы можете скачать его с https://ffmpeg.zeranoe.com/builds/
Выбрать:
Версия: стабильная (текущая версия 4.1.3).
Архитектура: Windows 64-bit
Связывание: статическое.
Извлеките zip-файл, вам понадобится только ffmpeg.exe
.
Для преобразования файла raw
в jpeg
с помощью FFmpeg
вы можете использовать следующую команду:
ffmpeg -y -video_size 768x576 -pix_fmt rgb24 -i my_image.raw -pix_fmt yuvj444p my_image.jpeg
Предполагая, что ваш необработанный формат файла является "коренастым" RGB (упорядочено: r, g, b, r, g, b, r, g, b ...), убедитесь, что размер файла равен 768*576*3
= 1,327,104 байта.
Просто чтобы убедиться, что проблема не в вашем входном файле ...
Вы можете создать синтетическое входное изображение raw
, используя FFmpeg
и преобразовать результат вjpeg
:
Создание синтетического ввода:
ffmpeg -y -f lavfi -i testsrc=duration=1:size=768x576:rate=1 -pix_fmt rgb24 -f image2 test_image.raw
Преобразование синтетического ввода:
ffmpeg -y -video_size 768x576 -pix_fmt rgb24 -i test_image.raw -pix_fmt yuvj444p test_image.jpeg
Результат (test_image.jpeg
):
Я нашел решение:
Видимо, формат необработанного изображения "планарный" RGB:
RRRRR
RRRRR
RRRRR
GGGGG
GGGGG
GGGGG
BBBBB
BBBBB
BBBBB
Преобразование его в формат JPEG (с использованием FFmpeg
) представляет собой сложную проблему:
ffmpeg -y -video_size 768x576 -pix_fmt gbrp -i m-001-1.raw -filter_complex "extractplanes=g+b+r[g][b][r],[r][g][b]mergeplanes=0x001020:gbrp[v]" -map "[v]" m-001-1.jpeg
FFmpeg
не поддерживает необработанный «плоский» формат RGB.
Единственный «планар», близкий к RGB, - это GBR (сначала зеленая плоскость).
Я использовал extractplanes
и mergeplanes
для изменения порядка цветовых каналов.
ImageMagick
имеет гораздо более простое решение:
magick.exe -depth 8 -interlace plane -size 768x576 rgb:image.raw image.jpeg
Пример:
Поскольку stackoverflow
не позволяет загружать файлы raw
, язагрузил png
изображение в формате grayscale
, имитирующее «планарный» RGB:
Для тестирования решения используйте следующие шаги:
- Загрузите образ (imgur назвал его:
D5IUp.png
). - Преобразовать из
png
в raw
как "планарный" RGB "(расширение .y
):
ffmpeg -y -i D5IUp.png -c:v rawvideo -pix_fmt gray D5IUp.y
- Преобразовать из
raw
в jpeg
:
ffmpeg -y -video_size 128x96 -pix_fmt gbrp -i D5IUp.y -filter_complex "extractplanes=g+b+r[g][b][r],[r][g][b]mergeplanes=0x001020:gbrp[v]" -map "[v]" D5IUp.jpeg
Результат:
Пример пакетного преобразования с использованием ImageMagick
:
for %%f in (*.raw) do (magick.exe -depth 8 -interlace plane -size 768x576 rgb:"%%f" "%%~nf.jpeg")