Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 18:55   #1
DanilaN
 
Регистрация: 26.09.2012
Сообщений: 7
Вопрос Создание миниатюр, не загружая изображение поностью

Всем привет!
Нужно загружать JPG изображения в TImageList.
Фрагмент кода:
Код:
        // TImage для загрузки любых изображений
	std::auto_ptr<TImage> img(new TImage(NULL));
	// TBitmap для загрузки изображений в ImageList (m_imgList)
	std::auto_ptr<TPicture> bmp(new TPicture());

	// загрузка изображения в TImage
	img->Picture->LoadFromFile(path);

	// загрузка изображения в ImageList (m_imgList)
	bmp->Bitmap->FreeImage();
	bmp->Bitmap->Width = m_imgList->Width;
	bmp->Bitmap->Height = m_imgList->Height;

	bmp->Bitmap->Canvas->Lock();
	bmp->Bitmap->Canvas->StretchDraw(bmp->Bitmap->Canvas->ClipRect, img->Picture->Graphic);
	bmp->Bitmap->Canvas->Unlock();

	m_imgList->AddMasked((bmp.get())->Bitmap, Graphics::clNone);
Изображения загружаются в большом количестве (сотни).
Загрузка больших изображений (5000х3500, 2,65 МБ) происходит очень медленно, т.к. метод StretchDraw прорисовывает изображение и подгоняет его размер.

А что если загружать не всё изображение (попутно подгоняя его размер), а загружать лишь миниатюру изображения, скажем 64х64?

Но как загрузить миниатюру, не загружая при этом полностью само изображение?
Системное кеширование (thumbs.db) не подходит, т.к. программа будет работать в win 7, а там механизм уже другой.

Если кто сталкивался с подобной проблемой, подскажите решение.
Благодарю.
DanilaN вне форума Ответить с цитированием
Старый 12.10.2012, 09:18   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

миниатюра строится из всего изображения.
разве что поискать в тэгах(забыл как они называются точно) превьюшку.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Проблема с главным потоком. Как заставить его ожидать не загружая процессор Altera Общие вопросы Delphi 23 06.01.2010 14:40
Нажать на кнопку не загружая страницу Des Работа с сетью в Delphi 1 30.04.2009 16:54
HTML-документы в виде миниатюр(эскизов) Shreksan Софт 0 15.01.2008 18:02
Изображение Artem Мультимедиа в Delphi 10 13.07.2007 13:27