Кратко: Разработка алгоритма расчета размеров изображения для его пропорционального отображения и реализация алгоритма различными методами.
Подробно:
Расчет размеров TImage - Во многих программах возникаем задача вывода изображения в Вашу форму. Чаще всего для этого применяется стандартный класс C++ Builder/ Delphi TImage. Однако, что делать если размеры размещенного на форме TImage и размеры изображения не совпадают? TImage имеет свойство Stretch (растягивание), при установке которого выполняется «вписывание» изображения в выделенную под объект TImage прямоугольную область. При этом пропорции полученного изображения могут быть потеряны, если размеры первоначального изображения не пропорциональны размерам области TImage. Идея предлагаемого метода такова: нужно менять размеры самого объекта TImage, таким образом чтобы они (размеры) подстроились под размеры исходного изображения. При этом сам TImage должен быть ограничен прямоугольной областью какого-либо объекта-контейнера, на котором он будет размещаться. Таким объектом может быть, например, TPanel. Таким образом, предлагаемый метод гарантирует, что после его применения к объекту типа TImage, TImage изменит свои размеры так, что станет пропорционален выводимому изображению, при этом не выйдет за пределы объекта-контейнера. А установленное свойство Stretch заполнит изображением всю область TImage, теперь уже пропорционально.
Алгоритм реализован в виде:
динамически подключаемая библиотека (dll);
компонент среды разработки С++ Builder/Delphi;
COM-объект.