Программирование мультимедиа-систем. Баканов В.М. - 6 стр.

UptoLike

Составители: 

- 6 -
В целях визуализации изображения при его размерах, значительно превы-
шающих размеры окна, компонент Image помещен в контейнер ScrollBox
(причем свойство Align последнего установлено в alClient); этим достигается
скроллинг окна показа изображения относительно окна программы.
Режим масштабирования (с показом загруженного изображения во весь
размер полотна) включается переводом булева свойства полотна в true (соот-
ветственно и обратное
действие):
Image1->Stretch = ! (Image1->Stretch);
Однако при этом (если отношение горизонтального и вертикального раз-
меров изображения не совпадает с таковым полотна) изображение будет ис-
кажено (исказятся пропорции). Для сохранения пропорций (заметим, что
большинство современных дисплеев используютквадратные пикселы, т.е.
AspectRatio=1) необходимо соответствующим образом изменять размер по-
лотна; в модуле Main.cpp (проект View.bpr) описаны функции MakeScale
(масштабировать с
сохранением пропорций, выполняется при загрузке файла
изображения) и ClearScale (вернуть режим визуализации без масштабирова-
ния). Соответственно функция MakeScale должны быть вызвана всякий раз
при изменении размеров окна программы визуализации (реакция на событие
OnResize), рис.1.1.
Рисунок 1.1 — Вид окна программы View.exe визуализации файлов изображений
  В целях визуализации изображения при его размерах, значительно превы-
шающих размеры окна, компонент Image помещен в контейнер ScrollBox
(причем свойство Align последнего установлено в alClient); этим достигается
скроллинг окна показа изображения относительно окна программы.
  Режим масштабирования (с показом загруженного изображения во весь
размер полотна) включается переводом булева свойства полотна в true (соот-
ветственно и обратное действие):

  Image1->Stretch = ! (Image1->Stretch);

  Однако при этом (если отношение горизонтального и вертикального раз-
меров изображения не совпадает с таковым полотна) изображение будет ис-
кажено (исказятся пропорции). Для сохранения пропорций (заметим, что
большинство современных дисплеев используют ‘квадратные’ пикселы, т.е.
AspectRatio=1) необходимо соответствующим образом изменять размер по-
лотна; в модуле Main.cpp (проект View.bpr) описаны функции MakeScale
(масштабировать с сохранением пропорций, выполняется при загрузке файла
изображения) и ClearScale (вернуть режим визуализации без масштабирова-
ния). Соответственно функция MakeScale должны быть вызвана всякий раз
при изменении размеров окна программы визуализации (реакция на событие
OnResize), рис.1.1.




Рисунок 1.1 — Вид окна программы View.exe визуализации файлов изображений




                                      -6-