Склейка PNG изображений

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

BratSinot
Сообщения: 812
ОС: Slackware64

Склейка PNG изображений

Сообщение BratSinot »

Доброго времени суток!

Нужна программа для склейки изображений в одно большое. Размеры где-то такие: 17 кусочков, каждый 60000x2500, итоговое изображение будет 60000x40000. montage из ImageMagick не предлагать, по нескольким причинам:
1) Он работает крайне медленно, с утра включил до вечера нифига не сделал.
2) Жрет нереально много места на диске. Откуда столько, непонятно. Даже если записать все изображения в RGB(по 3 байта на пиксель) это будет где-то 6.7GiB, а он 40+GiB есть и это не предел!

Хотел написать свою программу, мол считываем первую строку пикселей, пишем в большой файл и т.д., но в libpng не обнаружил ничего для этого пригодного.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21528
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Склейка PNG изображений

Сообщение Bizdelnick »

Попробуйте последовательно сконвертить в формат без сжатия, потом склеить и сконвертить обратно в PNG (convert - montage - convert).
Хотя неясна цель таких манипуляций. Работать с итоговым изображением всё равно будет нереально.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Склейка PNG изображений

Сообщение BratSinot »

Bizdelnick писал(а):
31.08.2011 21:58
Попробуйте последовательно сконвертить в формат без сжатия, потом склеить и сконвертить обратно в PNG (convert - montage - convert).

montage один черт будет работать по хрен знает каким алгоритмам.

Хотя неясна цель таких манипуляций. Работать с итоговым изображением всё равно будет нереально.

Это уже моя проблема =)
Спасибо сказали:
MrClon
Сообщения: 838
ОС: Ubuntu 10.04, Debian 7 и 6

Re: Склейка PNG изображений

Сообщение MrClon »

Разжать в BMP, а дальше «ручками». На сколько я помню формат BMP для этого достаточно отрезать от начала второго файла «вводную часть» и приклеить то что останется к концу первого файла. И так далее.
Изврат конечно, но должно выйти достаточно дёшево в плане потребления машинных ресурсов.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Склейка PNG изображений

Сообщение eddy »

Хм, мне тоже интересно: неужели такой утилиты нет? Ее же написать (для конкретного случая, конечно, а не для общего) - полчаса работы для хорошего программиста, или вечер для бездаря, вроде меня.
По сути нужно лишь открыть все эти файлы, а затем построчно считывать и объединять в "широкую" строку, которую тут же записывать (со сжатием) в результирующий файл.

Хм, только сейчас это заметил:
BratSinot писал(а):
31.08.2011 21:40
Хотел написать свою программу, мол считываем первую строку пикселей, пишем в большой файл и т.д., но в libpng не обнаружил ничего для этого пригодного.

Гуглите, да обрящете: png_get_rowbytes() (отсюда)
Запрос был элементарным: read png by line
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Склейка PNG изображений

Сообщение BratSinot »

eddy писал(а):
01.09.2011 00:24
BratSinot писал(а):
31.08.2011 21:40
Хотел написать свою программу, мол считываем первую строку пикселей, пишем в большой файл и т.д., но в libpng не обнаружил ничего для этого пригодного.

Гуглите, да обрящете: png_get_rowbytes() (отсюда)
Запрос был элементарным: read png by line

Не думал что у libpng такие мануалы клевые(это я про chapter15), думал будет как всегда.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Склейка PNG изображений

Сообщение eddy »

Ищите, да и обрящете...
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Склейка PNG изображений

Сообщение BIgAndy »

eddy писал(а):
01.09.2011 00:24
Хм, мне тоже интересно: неужели такой утилиты нет?

hugin?
Спасибо сказали: