Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Основная";
Текущий архив: 2003.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-88011
Алексий
2003-03-12 17:33
2003.03.27
получить время создания файла


1-87975
kofman
2003-03-12 21:37
2003.03.27
Добавление иконки в ListView


1-87933
МитяЙ2
2003-03-17 15:48
2003.03.27
WARNING и в Delphi и как от них избавиться


6-88115
JamesBond
2003-02-05 19:08
2003.03.27
IdSMTP1


14-88242
AlexanderSK
2003-03-12 15:31
2003.03.27
Опция - Build with run-time packages





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский