Запишите дополнительные изображения в TIFF файл, не стирая существующие изображения - PullRequest
2 голосов
/ 29 апреля 2019

Что я на самом деле делаю, так это сохраняю изображения в TIFF-файле, используя imageio.mimwrite(). Но в моем сценарии я открываю и закрываю файл несколько раз, поэтому он стирает существующие изображения перед сохранением изображений новостей. Я хочу сохранить существующие изображения в TIFF-файле и просто добавлять новые изображения, не стирая предыдущие. В документации я не нашел ничего, что может мне помочь.

Я на самом деле использую это: imageio.mimwrite("example.tiff", image, format=".tiff")

image - это массив, который содержит массивы целых чисел, каждый массив представляет изображение.

Этот код открывает example.tiff, стирает существующие изображения (если они существуют) и записывает изображения новостей. Но я хочу добавить, как open("file.txt", "a") делает.

1 Ответ

1 голос
/ 29 апреля 2019

Я сделал три TIFF-изображения разного размера с ImageMagick , например, для тестирования:

convert -size 640x480  xc:green             green.tif
convert -size 1024x768 xc:blue              blue.tif
convert -size 400x100 gradient:cyan-yellow  gradient.tif

Затем я использовал инструмент tiffcp, который распространяется с библиотекой TIFF и опцией -a, чтобы добавить синее и градиентное изображение к зеленому, например:

tiffcp -a blue.tif gradient.tif green.tif

Если я тогда проверю содержимое green.tiff с помощью ImageMagick identify, я вижу, что это выглядит правильно:

magick identify green.tif
green.tif[0] TIFF 640x480 640x480+0+0 16-bit sRGB 6.49355MiB 0.000u 0:00.000
green.tif[1] TIFF 1024x768 1024x768+0+0 16-bit sRGB 0.000u 0:00.000
green.tif[1] TIFF 400x100 400x100+0+0 16-bit sRGB 0.000u 0:00.000

И если я предварительно просмотрю файл, все три изображения будут там с правильными размерами и цветами:

enter image description here

Итак, я предлагаю вам рассмотреть возможность использования subprocess.run() для раскладки до tiffcp.

...