Уже несколько лет мы используем программу Onyx RIPCenter для управления печатью плакатов. Изображения были созданы с помощью Photoshop и загружены в приложение Onyx в Windows.
Недавно мы решили автоматизировать рабочий процесс, исключив Photoshop и автоматически обрабатывая изображения с помощью специального приложения, созданного на python (используя подушку python - https://pillow.readthedocs.io/en/latest/)
Теперь у меня проблема в том, что когда я открываю изображения, созданные через пользовательское приложение в RIPCenter, я получаю неправильные размеры в миллиметрах.
Фактический размер изображения:
924 мм x 2108 мм
вместо этого я получаю,
2309,99 мм x 5269,79 мм
Причиной этого является неправильное чтение DPI приложением, вместо 180 оно показывает 72 (фактический размер в пикселях - 6548 x 14938).
Пользовательское приложение устанавливает всю необходимую информацию для данных Exif, включая DPI. Это можно проверить, проверив свойство файла изображения в Windows. Но почему-то при открытии изображения в RIPCenter показывается неправильное значение DPI.
Вот код, который сохраняет изображение.
def save_image(modified_image, image_file, source_image):
"""
Store the processed image into a file
:param modified_image: <Obj> modified image object
:param image_file: <String> output filename
:param source_image: <Obj> original image object
:return: <Boolean> True if saved
"""
# fix Onyx printer error
# https://media.readthedocs.org/pdf/piexif/latest/piexif.pdf
exif_dict = piexif.load(source_image.info["exif"])
exif_dict["0th"][piexif.ImageIFD.XResolution] = (180.0, 1)
exif_dict["0th"][piexif.ImageIFD.YResolution] = (180.0, 1)
exif_bytes = piexif.dump(exif_dict)
# if this is not set, then the save option will throw an error for setting subsampling='keep'
modified_image.format = source_image.format
try:
modified_image.save(
image_file,
icc_profile=source_image.info.get('icc_profile'),
dpi=source_image.info.get('dpi'),
exif=exif_bytes,
format=source_image.format,
subsampling='keep',
quality=95
)
del source_image
del modified_image
return True
except IOError as e:
print(e)
return None
Если одно и то же изображение открывается и сохраняется в Photoshop, оно показывает правильный DPI. Я также попробовал Gimp, и я получил тот же результат. Изображение с неправильным DPI неожиданно получает правильный DPI при открытии и сохранении в Gimp.
Насколько я понимаю, пиксели (высота и ширина) и значения DPI считываются из данных Exif для разных платформ и приложений. Но возможно ли, что приложение Onyx RIPCenter ищет DPI в другом месте?
Ниже приведены данные exif изображений.
Exif данные изображения, сохраненного в Photoshop,
[ExifTool] ExifTool Version Number : 11.10
[System] File Name : A3-VictoriaGlenManor-RH-Copper-92.4x210.8-R.jpg
[System] Directory : /Users/vinodsudharshan/Downloads
[System] File Size : 34 MB
[System] File Modification Date/Time : 2018:08:24 14:37:25+02:00
[System] File Access Date/Time : 2018:08:27 23:27:08+02:00
[System] File Inode Change Date/Time : 2018:08:27 22:56:37+02:00
[System] File Permissions : rw-r--r--
[File] File Type : JPEG
[File] File Type Extension : jpg
[File] MIME Type : image/jpeg
[File] Exif Byte Order : Big-endian (Motorola, MM)
[File] Current IPTC Digest : cdcffa7da8c7be09057076aeaf05c34e
[File] Image Width : 6550
[File] Image Height : 14940
[File] Encoding Process : Baseline DCT, Huffman coding
[File] Bits Per Sample : 8
[File] Color Components : 4
[IFD0] Image Width : 6130
[IFD0] Image Height : 8400
[IFD0] Bits Per Sample : 8 8 8
[IFD0] Photometric Interpretation : RGB
[IFD0] Orientation : Horizontal (normal)
[IFD0] Samples Per Pixel : 3
[IFD0] X Resolution : 180
[IFD0] Y Resolution : 180
[IFD0] Resolution Unit : inches
[IFD0] Software : Adobe Photoshop CS5.1 Macintosh
[IFD0] Modify Date : 2018:08:23 17:32:21
[ExifIFD] Exif Version : 0221
[ExifIFD] Color Space : Uncalibrated
[ExifIFD] Exif Image Width : 6550
[ExifIFD] Exif Image Height : 14940
[IFD1] Compression : JPEG (old-style)
[IFD1] X Resolution : 72
[IFD1] Y Resolution : 72
[IFD1] Resolution Unit : inches
[IFD1] Thumbnail Offset : 394
[IFD1] Thumbnail Length : 2261
[IFD1] Thumbnail Image : (Binary data 2261 bytes, use -b option to extract)
[IPTC] Coded Character Set : UTF8
[IPTC] Application Record Version : 0
[Photoshop] IPTC Digest : cdcffa7da8c7be09057076aeaf05c34e
[Photoshop] X Resolution : 180
[Photoshop] Displayed Units X : inches
[Photoshop] Y Resolution : 180
[Photoshop] Displayed Units Y : inches
[Photoshop] Print Style : Centered
[Photoshop] Print Position : 0 0
[Photoshop] Print Scale : 1
[Photoshop] Global Angle : 30
[Photoshop] Global Altitude : 30
[Photoshop] URL List :
[Photoshop] Slices Group Name : A3-VictoriaGlenManor-RH-Copper-92.4x210.8-R
[Photoshop] Num Slices : 1
[Photoshop] Pixel Aspect Ratio : 1
[Photoshop] Photoshop Thumbnail : (Binary data 2261 bytes, use -b option to extract)
[Photoshop] Has Real Merged Data : Yes
[Photoshop] Writer Name : Adobe Photoshop
[Photoshop] Reader Name : Adobe Photoshop CS5.1
[Photoshop] Photoshop Quality : 12
[Photoshop] Photoshop Format : Standard
[Photoshop] Progressive Scans : 3 Scans
[XMP-x] XMP Toolkit : Adobe XMP Core 5.0-c061 64.140949, 2010/12/07-10:57:01
[XMP-xmp] Modify Date : 2018:08:23 17:32:21+02:00
[XMP-xmp] Creator Tool : Adobe Photoshop CS5.1 Macintosh
[XMP-xmp] Create Date : 2018:08:21 15:12:04+02:00
[XMP-xmp] Metadata Date : 2018:08:23 17:32:21+02:00
[XMP-crs] Already Applied : True
[XMP-photoshop] Color Mode : CMYK
[XMP-photoshop] ICC Profile Name : U.S. Web Coated (SWOP) v2
[XMP-dc] Format : image/jpeg
[XMP-xmpMM] Instance ID : xmp.iid:9F9A62F1B5206811BF6AFA75AB99E0BD
[XMP-xmpMM] Document ID : xmp.did:9E9A62F1B5206811BF6AFA75AB99E0BD
[XMP-xmpMM] Original Document ID : xmp.did:9E9A62F1B5206811BF6AFA75AB99E0BD
[XMP-xmpMM] History Action : saved, saved
[XMP-xmpMM] History Instance ID : xmp.iid:9E9A62F1B5206811BF6AFA75AB99E0BD, xmp.iid:9F9A62F1B5206811BF6AFA75AB99E0BD
[XMP-xmpMM] History When : 2018:08:23 17:32:21+02:00, 2018:08:23 17:32:21+02:00
[XMP-xmpMM] History Software Agent : Adobe Photoshop CS5.1 Macintosh, Adobe Photoshop CS5.1 Macintosh
[XMP-xmpMM] History Changed : /, /
[ICC-header] Profile CMM Type : Adobe Systems Inc.
[ICC-header] Profile Version : 2.1.0
[ICC-header] Profile Class : Output Device Profile
[ICC-header] Color Space Data : CMYK
[ICC-header] Profile Connection Space : Lab
[ICC-header] Profile Date Time : 2000:07:26 05:41:53
[ICC-header] Profile File Signature : acsp
[ICC-header] Primary Platform : Apple Computer Inc.
[ICC-header] CMM Flags : Not Embedded, Independent
[ICC-header] Device Manufacturer : Adobe Systems Inc.
[ICC-header] Device Model :
[ICC-header] Device Attributes : Reflective, Glossy, Positive, Color
[ICC-header] Rendering Intent : Media-Relative Colorimetric
[ICC-header] Connection Space Illuminant : 0.9642 1 0.82491
[ICC-header] Profile Creator : Adobe Systems Inc.
[ICC-header] Profile ID : 0
[ICC_Profile] Profile Description : U.S. Web Coated (SWOP) v2
[ICC_Profile] Profile Copyright : Copyright 2000 Adobe Systems, Inc.
[ICC_Profile] Media White Point : 0.7084 0.73595 0.57104
[ICC_Profile] A To B0 : (Binary data 41478 bytes, use -b option to extract)
[ICC_Profile] A To B2 : (Binary data 41478 bytes, use -b option to extract)
[ICC_Profile] A To B1 : (Binary data 41478 bytes, use -b option to extract)
[ICC_Profile] B To A0 : (Binary data 145588 bytes, use -b option to extract)
[ICC_Profile] B To A1 : (Binary data 145588 bytes, use -b option to extract)
[ICC_Profile] B To A2 : (Binary data 145588 bytes, use -b option to extract)
[ICC_Profile] Gamut : (Binary data 37009 bytes, use -b option to extract)
[Adobe] DCT Encode Version : 100
[Adobe] APP14 Flags 0 : [14]
[Adobe] APP14 Flags 1 : (none)
[Adobe] Color Transform : YCCK
[Composite] Image Size : 6550x14940
[Composite] Megapixels : 97.9
Exif-данные изображения, сохраненного в приложении Python,
[ExifTool] ExifTool Version Number : 11.10
[System] File Name : A3-TEST_2_EXIF-RH-Copper-92.4x210.8-R.jpg
[System] Directory : /Users/vinodsudharshan/Desktop
[System] File Size : 36 MB
[System] File Modification Date/Time : 2018:08:27 21:55:25+02:00
[System] File Access Date/Time : 2018:08:31 16:59:05+02:00
[System] File Inode Change Date/Time : 2018:08:27 22:56:37+02:00
[System] File Permissions : rw-r--r--
[File] File Type : JPEG
[File] File Type Extension : jpg
[File] MIME Type : image/jpeg
[File] Exif Byte Order : Big-endian (Motorola, MM)
[File] Image Width : 6548
[File] Image Height : 14938
[File] Encoding Process : Baseline DCT, Huffman coding
[File] Bits Per Sample : 8
[File] Color Components : 4
[Adobe] DCT Encode Version : 100
[Adobe] APP14 Flags 0 : (none)
[Adobe] APP14 Flags 1 : (none)
[Adobe] Color Transform : Unknown (RGB or CMYK)
[IFD0] Image Width : 6130
[IFD0] Image Height : 8400
[IFD0] Bits Per Sample : 8 8 8
[IFD0] Photometric Interpretation : RGB
[IFD0] Orientation : Horizontal (normal)
[IFD0] Samples Per Pixel : 3
[IFD0] X Resolution : 180
[IFD0] Y Resolution : 180
[IFD0] Resolution Unit : inches
[IFD0] Software : Adobe Photoshop CS5.1 Macintosh
[IFD0] Modify Date : 2018:07:11 17:42:24
[ExifIFD] Exif Version : 0221
[ExifIFD] Color Space : Uncalibrated
[ExifIFD] Exif Image Width : 5669
[ExifIFD] Exif Image Height : 14173
[IFD1] Compression : JPEG (old-style)
[IFD1] X Resolution : 180
[IFD1] Y Resolution : 180
[IFD1] Resolution Unit : inches
[IFD1] Thumbnail Offset : 404
[IFD1] Thumbnail Length : 2076
[IFD1] Thumbnail Image : (Binary data 2076 bytes, use -b option to extract)
[ICC-header] Profile CMM Type : Adobe Systems Inc.
[ICC-header] Profile Version : 2.1.0
[ICC-header] Profile Class : Output Device Profile
[ICC-header] Color Space Data : CMYK
[ICC-header] Profile Connection Space : Lab
[ICC-header] Profile Date Time : 2000:07:26 05:41:53
[ICC-header] Profile File Signature : acsp
[ICC-header] Primary Platform : Apple Computer Inc.
[ICC-header] CMM Flags : Not Embedded, Independent
[ICC-header] Device Manufacturer : Adobe Systems Inc.
[ICC-header] Device Model :
[ICC-header] Device Attributes : Reflective, Glossy, Positive, Color
[ICC-header] Rendering Intent : Media-Relative Colorimetric
[ICC-header] Connection Space Illuminant : 0.9642 1 0.82491
[ICC-header] Profile Creator : Adobe Systems Inc.
[ICC-header] Profile ID : 0
[ICC_Profile] Profile Description : U.S. Web Coated (SWOP) v2
[ICC_Profile] Profile Copyright : Copyright 2000 Adobe Systems, Inc.
[ICC_Profile] Media White Point : 0.7084 0.73595 0.57104
[ICC_Profile] A To B0 : (Binary data 41478 bytes, use -b option to extract)
[ICC_Profile] A To B2 : (Binary data 41478 bytes, use -b option to extract)
[ICC_Profile] A To B1 : (Binary data 41478 bytes, use -b option to extract)
[ICC_Profile] B To A0 : (Binary data 145588 bytes, use -b option to extract)
[ICC_Profile] B To A1 : (Binary data 145588 bytes, use -b option to extract)
[ICC_Profile] B To A2 : (Binary data 145588 bytes, use -b option to extract)
[ICC_Profile] Gamut : (Binary data 37009 bytes, use -b option to extract)
[Composite] Image Size : 6548x14938
[Composite] Megapixels : 97.8