Компонент для отображения превьюшек изображений

Леонид19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
16.09.2007

Необходимо разработать визуальный компонент для Delphi 6 (написанный на этой же версии Delphi) для быстрого отображения превьюшек изображений.

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

Компонент поставляется заказчику с исходными кодами.

На вход компонента подается набор изображений в виде массива путей к изображениям (разработчик компонента должен реализовать работу с изображениями следующих форматов: JPG, Gif, Tiff, BMP, PNG, WMF, PCX и оставить возможность в последствии легко добавлять и другие форматы).

В результате изображения должны быстро (в несколько потоков) преобразовываться в превьюшки, заданного размера, и размещаться "в компоненте" для просмотра. Причем просмотр уже готовых превьюшек должен начинаться сразу же не дожидаясь пока все изображения будут подготовлены к просмотру, а компонент в процессе генерации превьюшек должен генерировать событие позволяющее отобразить ProgressBar с процессом загрузки. При этом на каждой превьюшке необходимо предусмотреть вывод текста и изображения 16X16 с форматом данного изображений (прямо на самом изображении превьюшки), а под каждой превьюшкой должно быть многострочное поле для подписи. Превьюшки должны быть расположены как можно плотнее друг к другу, как по вертикали так и по горизонтали занимая всю область компонента. Необходимо предусмотреть возможность добавления и удаления любой превьюшки или группы превьюшек. При этом все содержимое должно быстро перерисоваться, а при удалении изображения должны просто "сомкнуться" вокруг удаленных превьюшек. Изображение 16X16 с форматом изображения разместить в правом верхнем углу превьюшки. В левом нижнем расположись CheckBox позволяющий пользователю пометить необходимые изображения. При этом компонент должен генерировать событие OnChange при установки или снятия галочки с CheckBox`а, возврящая при этом индекс редактируемой превьюшки.

Так же необходимо реализовать следующие возможности в режиме реального времени:

1. реализовать возможность изменения цвета фона как всего компонента так и фона области превьюшек, а также реализовать возможность применения заданного изображения в качестве фона компонента

2. реализовать возможность изменения цвета и шрифта подписей к превьюшкам

3. реализовать быструю перерисовку компонента при изменении размеров превьюшек

4. реализовать отбрасывание тени каждой превьюшкой