2013-05-01 2 views
0

Я создаю черно-белые изображения TIF с нуля и рисую текст на них с помощью библиотеки изображений Python. Использование Python 2.7, PIL 1.1.7 на Windows 7.Перевернутые изображения tiff и тег фотометрической интерпретации в PIL?

Для создания каждого изображения, я использую этот код

def newBinaryImage(w,h): 
    return Image.new("1",(w,h),1) 

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

После контакта с продавцом, создавшим пользовательское программное обеспечение, они сказали, что считают, что проблема может быть связана с тегом фотометрической интерпретации, и его можно было исправить с помощью сжатия Group4. Есть ли способ сделать это в PIL, или есть что-нибудь, что может/должно быть изменено при создании изображения?

Вот Image.DEBUG на одном из моих изображений:

>>>Image.open("1010.tif").show() 
tag: ImageWidth (256) - type: short (3) - value: (1200,) 
tag: ImageLength (257) - type: short (3) - value: (1600,) 
tag: Compression (259) - type: short (3) - value: (1,) 
tag: PhotometricInterpretation (262) type: short (3) - value: (1,) 
tag: StripOffsets (273) - type: long (4) - value: (98,) 
tag: RowsPerStrip (278) - type: short (3) - value: (1600,) 
tag: StripByteCounts (279) - type: long (4) - value: (240000,) 
*** Summary *** 
- compression: raw 
- photometric_interpretation: 1 
- planar_configuration: 1 
- fill_order: 1 
- size: (1200,1600) 
format key: ('II', 1, 1, 1, (1,),()) 
- raw mode: 1 
- pil mode: 1 
+0

Принтеры традиционно игнорируют палитру на 1-битных изображениях и просто предполагают, что 0 = белый и 1 = черный. Вам нужно изменить свое изображение, чтобы оно соответствовало, но я не думаю, что PIL позволяет вам изменять палитру на режиме «1». –

ответ

0

Я в конечном итоге устранить эту проблему с помощью ImageMagick. Все, что я сделал, это «конвертировать» каждый файл из типа «tif», чтобы набрать «tif», и он решил проблему! Кажется, это проблема сжатия с PIL.

Смежные вопросы