Я пытаюсь преобразовать изображения с серой шкалой в RGB, используя imagemagick command-line tools.Преобразование изображения JPG из оттенков серого в RGB с использованием imagemagick
Он работает отлично для PNG изображений, используя:
convert image.png -define png:color-type=2 result.png
(взято из ответа на "How to convert gray scale png image to RGB from comand line using image magick")
Хотя проверки с identify -format %r result.png
будет возвращать DirectClass Грея, я могу видеть, что это работает используя gdalinfo
, как есть в настоящее время перечисленные полосы/каналы:
gdalinfo [успешно преобразованные PNG]:
Driver: PNG/Portable Network Graphics
Files: result.png
Size is 567, 479
Coordinate System is `'
Image Structure Metadata:
INTERLEAVE=PIXEL
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 479.0)
Upper Right ( 567.0, 0.0)
Lower Right ( 567.0, 479.0)
Center ( 283.5, 239.5)
Band 1 Block=567x1 Type=Byte, ColorInterp=Red
Band 2 Block=567x1 Type=Byte, ColorInterp=Green
Band 3 Block=567x1 Type=Byte, ColorInterp=Blue
Тем не менее, кажется, что -define
option работает только для PNG изображений.
Мой вопрос: Как добиться такого же эффекта для изображений в формате JPG?
При попытке вышеуказанной команды для JPG, он не работает:
convert image.jpg -define jpg:color-type=2 result.jpg
gdalinfo [неудачно переделанный JPG]:
Driver: JPEG/JPEG JFIF
Files: result.jpg
Size is 1500, 1061
Coordinate System is `'
Metadata:
EXIF_ColorSpace=1
EXIF_PixelYDimension=2480
...
EXIF_YCbCrPositioning=1
EXIF_YResolution=(300)
Corner Coordinates:
Upper Left ( 0.0, 0.0)
Lower Left ( 0.0, 1061.0)
Upper Right (1500.0, 0.0)
Lower Right (1500.0, 1061.0)
Center ( 750.0, 530.5)
Band 1 Block=1500x1 Type=Byte, ColorInterp=Gray
Overviews: 750x531, 375x266, 188x133
Image Structure Metadata:
COMPRESSION=JPEG
Большое спасибо за быстрый ответ. Для записи: 'convert input.jpg -type truecolor result.jpg' работал отлично. При добавлении '-colorspace sRGB' дал тот же результат, используя его сам по себе, не получило работу. – NotYanka