vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Почему-то среди широко известных опенсурсных программ нет программы, которая бы позволяла просматривать БОЛЬШИЕ картинки. Под "большой картинкой" здесь понимается растровое изображение таких размеров, что его неупакованное RGB-представление (обычно получается по 32 бита на пиксел, но достаточно и 24) не лезет в оперативную память.

То есть в resource-constrained environments вроде maemo "большой картинкой" будет уже лист А4, отсканированный на 600dpi. На десктопе с гигабайтом жизнь попроще. Но все равно есть вполне полезные вещи вроде graphviz, которые могут сгенерировать картинку, которая будет большой и для десктопа.

Задача, казалось бы элементарно простая - читаем картинку последовательно, пересчитываем координаты пикселов с учетом текущего размера окна, масштаба и выбранного viewport и заполняем offscreen pixmap размером с экран. На неё-то места хватит практически всегда. Это в DOS real mode на копию VESA-шного фреймбуфера в памяти места не хватало. И то вьюеры картинок под DOS писали и они работали.

Оказывается проблема в том, что у современного программиста даже не возникает мысль подойти к задаче системно. Вместо этого ищется готовый инструмент. На освоение которого уходит больше времени и сил, чем на написание вышеописанного простого алгоритма с нуля. Причем, желательно инструмент поуниверсальнее. Берем какой-нибудь GEGL и обнаруживаем что ему для загрузки картинки в свой tiled формат требуется больше места, чем у нас имеется в том, что на нашем девайсе заменяет жесткий диск.

Date: 2009-09-28 11:39 am (UTC)
From: [identity profile] denisioru.livejournal.com
Ну как сказать. Зависит от ниши софта. Обычный софт, типа ACDSee или похожие - крайне редко сталкивается с необходимостью просматривать такого размера картинки. Поэтому и подход просто - читаем всю картинку. Специализированный софт - типа просмотра аэрофотоснимков и т.д. - имеет у себя в качестве ключевых требований именно работу с большими картинками, посему подход к отображению и чтению картинки там другой. Опять же с компромиссом типа удобства. Универсальный инструмент будет маловостребован массовым потребителем, поэтому и нет такого.

Date: 2009-09-28 12:27 pm (UTC)
ivanaxe: (Default)
From: [personal profile] ivanaxe
Повторяю вводную -- хотя бы скан листа карты А4 посмотреть на кпк.
Не самая специализированная задача.

(no subject)

From: [personal profile] abbra - Date: 2009-09-28 12:39 pm (UTC) - Expand

(no subject)

From: [personal profile] ivanaxe - Date: 2009-09-28 07:12 pm (UTC) - Expand

(no subject)

From: [personal profile] abbra - Date: 2009-09-28 07:17 pm (UTC) - Expand

Date: 2009-09-28 11:44 am (UTC)
abbra: (Default)
From: [personal profile] abbra
Витус, напиши сам. :)

Я вот специально просмотрел все, что есть среди свободного софта. Картина -- ровно как я тебе и описал, и как ты ее сейчас в этом посте и перепечатал. Думать не хотят, фреймворки заруливают всех остальных, задач нет для использования реалистичных алгоритмов. В больших конторах скорее напрягут поправить UI, чтобы он был в соответствии со спецификацией, написанной UI-дизайнером, чем за такие вещи.

Пример с GEGL я привел ровно для того, чтобы продемонстрировать -- даже в библиотеке, в которой заранее была продумана возможность работать с огромной картинкой, все плохо, потому что нет четких спецификаций и задач. Пишут как бы для себя, но в то же время и не для себя, для галочки.

(no subject)

From: [personal profile] andrzejn - Date: 2009-09-28 12:09 pm (UTC) - Expand

(no subject)

From: [personal profile] abbra - Date: 2009-09-28 12:41 pm (UTC) - Expand

(no subject)

From: [identity profile] deztructor.livejournal.com - Date: 2009-09-28 03:03 pm (UTC) - Expand

(no subject)

From: [personal profile] abbra - Date: 2009-09-28 04:32 pm (UTC) - Expand

Date: 2009-09-28 11:48 am (UTC)
From: [identity profile] potan.livejournal.com
Вьюер - это программа, которая кроме просмотра картинок больше ни чего делать не умеет?

(no subject)

From: [identity profile] potan.livejournal.com - Date: 2009-09-28 12:44 pm (UTC) - Expand

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2009-09-28 03:21 pm (UTC) - Expand

(no subject)

From: [identity profile] bigrasta.livejournal.com - Date: 2009-09-28 03:57 pm (UTC) - Expand

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2009-09-28 04:28 pm (UTC) - Expand

(no subject)

From: [identity profile] bigrasta.livejournal.com - Date: 2009-09-28 04:52 pm (UTC) - Expand

(no subject)

From: [identity profile] blacklion.livejournal.com - Date: 2009-09-28 05:42 pm (UTC) - Expand

(no subject)

From: [identity profile] potan.livejournal.com - Date: 2009-09-29 11:30 am (UTC) - Expand

Date: 2009-09-28 11:53 am (UTC)
From: [identity profile] blacklion.livejournal.com
Проблема в том, что тебе придётся писать руками обработку десятка форматов. Из которых некоторые (JPEG, TIFF) весьма нетривиальны. Готовые же библиотеки такого функционала не дают.
Ты готов написать ещё одну реализацию TIFF со всей его тысячью тегов и двумя дестяками интерпритаций “сырых” битмап-данных в зависимости от набора флагов и тегов?

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2009-09-28 12:44 pm (UTC) - Expand

(no subject)

From: [personal profile] abbra - Date: 2009-09-28 12:54 pm (UTC) - Expand

(no subject)

From: [identity profile] slobin.livejournal.com - Date: 2009-09-29 09:27 pm (UTC) - Expand

Date: 2009-09-28 12:00 pm (UTC)
From: [identity profile] vadiml.livejournal.com
Я тоже на таком спотыкался, из-за этого ставил себе линукс версию xnview, которая давно не развивается, хотя автор давным-давно обещал виндовую версию переписать на Qt4 и потом портировать и портировать её на Mac и Линукс.

Date: 2009-09-28 12:13 pm (UTC)
From: [identity profile] san-sanych-r.livejournal.com
aptitude show nip2 не это нужно?

Date: 2009-09-28 01:15 pm (UTC)
From: [identity profile] jek-hor.livejournal.com
Да-да, когда я пытался рендерить карты в интересном мне разрешении из вектора, то либо конверторы, либо просмотрщики падали с воплями о нехватке памяти, а на самом деле им не хватало адресного пространства (!). А там всего-то картинки чуть больше, чем 20000х20000 были. Или даже не больше...

Date: 2009-09-28 02:19 pm (UTC)
From: [identity profile] amarao-san.livejournal.com
аха. Я как-то сгенерировал картинку 20кХ10к. Потом был тест, что раньше упадёт. geeqie прорвалась и показала (ужрав весь своп). Браузеры молча не показали (все три штуки), остальные вьеры жрали память и не показывали.

оффтопик

Date: 2009-09-28 02:39 pm (UTC)
From: [identity profile] dil.livejournal.com
товарищ маинтейнер ru_debian!
а нельзя ли там премодерацию ввести? а то спам достал.
вот свежий:
http://community.livejournal.com/ru_debian/185147.html
http://community.livejournal.com/ru_debian/185009.html

Re: оффтопик

From: [identity profile] dil.livejournal.com - Date: 2009-09-28 03:29 pm (UTC) - Expand

Date: 2009-09-28 02:54 pm (UTC)
From: [identity profile] brazhe.livejournal.com
А как же nip2 ?

Date: 2009-09-28 03:26 pm (UTC)
From: [identity profile] grundik.livejournal.com
Ну это, если требований нет, то почему надо тратить своё (и тестерское) время на это? ;)
Фотошоп, например, картинку в 8 гигабайт на 2 Гб ОЗУ показывает хорошо. Но там в ТЗ было такое требование.

(no subject)

From: [identity profile] grundik.livejournal.com - Date: 2009-09-29 12:28 am (UTC) - Expand

Date: 2009-09-28 08:04 pm (UTC)
From: [identity profile] captain-hell.livejournal.com
у меня полтора гигабайта очень медленно открывается и работает.

(no subject)

From: [identity profile] grundik.livejournal.com - Date: 2009-09-29 12:38 am (UTC) - Expand

Date: 2009-09-28 06:37 pm (UTC)
From: [identity profile] os80.livejournal.com
А что из гуйных библиотек разрешается использовать?

Date: 2009-09-28 08:03 pm (UTC)
From: [identity profile] captain-hell.livejournal.com
сильное, слабое. Такого софта вообще нет. Скан своей пленки в полтора гигабайта на моем ноутбуке открывается минуты. А сделать что-то с ним в фотошопе - сродни подвигу. Как сапер, ей богу.

Date: 2009-09-29 12:43 am (UTC)
From: [identity profile] grundik.livejournal.com
Странно. Когда у меня был древний комп (amd64 3200+, 2Gb RAM), то тормозить начинало с файлов размером в 3-4 гига, 8 гигов - ещё можно было работать (но комп становился однозадачным). Полтора гига вообще без проблем было обрабатывать (ну, если со слоями не баловаться сильно). Загружается - да, медленно, и потом тоже небыстро, но терпимо.

Скан поди в tiff?

Хотя может на буке винт медленный, это ведь влияет...

Date: 2009-09-29 08:29 am (UTC)
From: [identity profile] ckotinko.livejournal.com
дело в загрузчиках картинок. в том же maemo стоят гтковые загрузчики, а оне могут растянуть загрузку во времени, но не в пространстве. а иначе загрузчик придётся радостно писать ручками.

Date: 2009-09-29 09:55 pm (UTC)
From: [identity profile] yarikas.livejournal.com
Чем-то знакомая задача (http://newsgroup.xnview.com/viewtopic.php?t=16479)...

Date: 2009-09-30 06:25 am (UTC)
From: [identity profile] cgem.livejournal.com
У вас какой-то бзик по поводу браузеров изображений. GEGL это библиотека для редактора изображений, а не для браузера изображений, чувствуете разницу?

Date: 2009-09-30 06:26 am (UTC)
From: [identity profile] kh13.livejournal.com
берем .png и ужасаемся тому, что "произвольную часть картинки" с диска так просто не вытащить.

(no subject)

From: [identity profile] kh13.livejournal.com - Date: 2009-09-30 07:50 am (UTC) - Expand

(no subject)

From: [identity profile] kh13.livejournal.com - Date: 2009-09-30 09:27 am (UTC) - Expand

(no subject)

From: [identity profile] kh13.livejournal.com - Date: 2009-09-30 10:39 am (UTC) - Expand

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 2nd, 2025 09:16 pm
Powered by Dreamwidth Studios