Я работаю с большим многостраничным файлом TIFF, сжатым в формате JPEG, и мне нужно удалить из него одну страницу. Я использую пакет Python tifffile для обработки TIFF и уже знаю, какую страницу хочу удалить, на основе тегов метаданных, связанных с этой страницей. Мой текущий подход заключается в том, чтобы прочитать все страницы, изменить целевую страницу (пропустив или заменив ее) и записать остальное обратно в новый файл TIFF.
Вот что я пробовал пока:
import tifffile
with tifffile.TiffFile('file') as tif:
for i, page in enumerate(tif.pages):
if some condition with tags is true:
# Skip the page to delete or replace with a dummy page
image_data = page.asarray(memmap=True) # Memory-mapped access to the page's data
# Write the page to the output file
writer.write(
image_data,
compression='jpeg',
photometric=page.photometric,
metadata=page.tags,
)
Однако у этого подхода есть несколько проблем:
Использование памяти: обработка большого файла потребляет почти все доступной памяти (у меня 32 ГБ ОЗУ, но она использует до 28 ГБ), что делает невозможным использование больших файлов.
Проблемы сжатия: Различные методы сжатия, такие как LZW, ZSTD и JPEG создает файлы совершенно разных размеров, некоторые из них намного больше оригинала.
Производительность: использование таких методов, как полоски или фрагментирование, приводит к очень медленная обработка, удаление одной страницы занимает слишком много времени.
Размер выходного файла: размер выходного файла при использовании другого метода сжатия. делает его слишком большим! (Вход от 3 ГБ в формате JPEG до вывода более 50 ГБ в LZW)
Есть ли в Python какой-нибудь способ эффективно удалить одну страницу из большого многостраничного файла TIFF, не занимая слишком много памяти и не занимая вечность? Я видел несколько пакетов .NET, которые могут удалять страницы на месте. Есть ли у Python подобное решение?
Я работаю с большим многостраничным файлом TIFF, сжатым в формате JPEG, и мне нужно удалить из него одну страницу. Я использую пакет Python tifffile для обработки TIFF и уже знаю, какую страницу хочу удалить, на основе тегов метаданных, связанных с этой страницей. Мой текущий подход заключается в том, чтобы прочитать все страницы, изменить целевую страницу (пропустив или заменив ее) и записать остальное обратно в новый файл TIFF. Вот что я пробовал пока: [code]import tifffile
with tifffile.TiffFile('file') as tif: for i, page in enumerate(tif.pages): if some condition with tags is true: # Skip the page to delete or replace with a dummy page
image_data = page.asarray(memmap=True) # Memory-mapped access to the page's data
# Write the page to the output file writer.write( image_data, compression='jpeg', photometric=page.photometric, metadata=page.tags, ) [/code] Однако у этого подхода есть несколько проблем: [list] [*]Использование памяти: обработка большого файла потребляет почти все доступной памяти (у меня 32 ГБ ОЗУ, но она использует до 28 ГБ), что делает невозможным использование больших файлов.
[*]Проблемы сжатия: Различные методы сжатия, такие как LZW, ZSTD и JPEG создает файлы совершенно разных размеров, некоторые из них намного больше оригинала.
[*]Производительность: использование таких методов, как полоски или фрагментирование, приводит к очень медленная обработка, удаление одной страницы занимает слишком много времени.
[*]Размер выходного файла: размер выходного файла при использовании другого метода сжатия. делает его слишком большим! (Вход от 3 ГБ в формате JPEG до вывода более 50 ГБ в LZW)
[/list] Есть ли в Python какой-нибудь способ эффективно удалить одну страницу из большого многостраничного файла TIFF, не занимая слишком много памяти и не занимая вечность? Я видел несколько пакетов .NET, которые могут удалять страницы на месте. Есть ли у Python подобное решение?
Я работаю с большим многостраничным файлом TIFF, сжатым в формате JPEG, и мне нужно удалить из него одну страницу. Я использую пакет Python tifffile для обработки TIFF и уже знаю, какую страницу хочу удалить, на основе тегов метаданных, связанных с...
Мне нужно обернуть изображение JPEG в формат TIFF (также известное как «JPEG-в-TIFF») без изменения данных JPEG (т. е. без распаковки и повторного сжатия исходного изображения JPEG, что может ухудшить качество изображения из-за появления...
У меня есть файл Tiff на 7000 страниц, каждое изображение имеет размер 300 x 309 пикселей. Весь файл Tiff занимает 2,5 ГБ. Мне удалось прочитать все изображения и отобразить их в моем приложении WPF. Но когда я пытаюсь создать новый файл Tiff,...
У меня есть файл Tiff на 7000 страниц, каждое изображение имеет размер 300 x 309 пикселей. Весь файл Tiff занимает 2,5 ГБ. Мне удалось прочитать все изображения и отобразить их в моем приложении WPF. Но когда я пытаюсь создать новый файл Tiff,...
Судя по результатам поиска, которые я получил, на большинстве страниц предлагались изображения Apache Commons или двенадцать обезьян, но я могу создать цветовую схему CMYK TIFF и JPEG, используя изображения IO и TwelveMonkeys, расширив следующий...