Вниз
Скачать: CL | DM;

Фрагмент изображения   Найти похожие ветки 

← →
Alexander Vasjuk   (2003-03-13 19:34) [0]

Мастера, для вас вопрос.
Имеется огромный графический файл. Очень долго грузится.

Необходимо просмотреть его очень маленький фрагмент.

Есть ли для этого быстрый способ?

Желательно конечно оставить его в сжатом формате (TIFF, JPEG), а то развернутый займет пару гигов. Впрочем, главное быстродействие, и если большой размер будет единственной возможностью, ускорения, пусть будет так.


← →
Alexander Vasjuk   (2003-03-13 19:42) [1]

А?


← →
kDenis ©   (2003-03-13 19:59) [2]

А у меня похожая ситуация назревает... (в смысле, ответ я пока не искал)
У меня битмэп 32x2240 в переменную TBitMap загружается...
Нужно разбить его на куски размером 32x32 и поместить в отдельные переменные...


← →
kDenis ©   (2003-03-13 20:56) [3]

Что в этот раз? Никто не знает, или всем надоело обяснять?


← →
MBo ©   (2003-03-13 22:06) [4]

>Alexander Vasjuk
Какие Windows?


← →
Jeer ©   (2003-03-14 00:43) [5]

Alexander Vasjuk (13.03.03 19:34)

Сам подумай.
Сжатие - своего рода перемешивание. Чтобы выделить часть первоначального из сжатого, надо сжатое привести в первоначальный вид, а для этого, как правило, нужно оперировать всем объемом.


← →
MBo ©   (2003-03-14 07:06) [6]

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

Второе - хранить битмап или DIB (подозреваю, что изменяться он ччасто не будет, так что заголовок можно хранить отдельно) , читать из файла нужные кусочки строк, копируя их в небольшой битмап для показа.


← →
OxOTHuK   (2003-03-14 07:17) [7]

а будет ли рационально в нескольких потоках читать определенные части картинки??
И как читать из битмапа строки? я пока себе плохо представляю.


← →
MBo ©   (2003-03-14 07:55) [8]

>OxOTHuK
1) Нерационально
2) изучи структуру битмапа. Исходники VCL помогут


← →
Alexander Vasjuk   (2003-03-14 14:07) [9]

Огромное спасибо откликнувшимся!
Продолжаем разговор...

MBo © (13.03.03 22:06)
98, 2000 и ХР

Jeer © (14.03.03 00:43)
Я понимаю, что сжатие это искажение. Но может есть способ неполной раскодировки...

MBo © (14.03.03 07:06)
Это мой дежурный вариант (хранить фрагменты раздельно и по 4 клеить ипоказывать).
Некрасиво, согласись. Хотя реализабельно.

OxOTHuK (14.03.03 07:17)
Рационально в разных потоках на мультипроцессорных системах.
А читать легко - несжатый битмап есть образ массива.
Но будет ли это быстро работать?
Надо попробовать.

MBo © (14.03.03 07:55)
Проще сделать raw данные и работать как файлом прямого доступа.

Итак. Пока реальны 2 способа:
1. Разбить изображение на много сжатых картинок.
2. Построчно тянуть из битмапа нужный фрагмент.

Никаких больше предложений (в т.ч. бредовых) не будет?
Нечто среднее. Чтоб и файл маленький и достать быстро...


← →
Alexander Vasjuk   (2003-03-14 14:49) [10]

Забыл моленькую деталь.
Фрагменты могут отличаться по размеру (масштаб)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
1-87944
mod
2003-03-17 14:43
2003.03.27
Создание Dll в BPascal


14-88197
alxx
2003-03-09 22:57
2003.03.27
Иконки


1-87923
Vint45
2003-03-17 11:30
2003.03.27
Динамический массив


3-87837
Pat
2003-03-08 11:23
2003.03.27
Переезжаем с Paradox a на Access :-))


1-87968
arturik
2003-03-17 22:59
2003.03.27
Как найти в Delphi6 статистические функции?




   Наверх