Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Вывод изображений и геометрические преобразования





В объекте Graphics для вывода растров предназначены методы (16 шт.) DrawImage. По своему назначению эти перегруженные функции разделяются на 2 основные группы:

1. Вывод изображения или его части в прямоугольную область с возможностью масштабирования по двум осям. В качестве параметров эти методы получают в различных видах координаты прямоугольных областей источника и приемника:

void PaintFlower(Graphics& g, Rect& rc) { ... g.DrawImage(flowerImage, flowerPos.X, flowerPos.Y, flowerImage->GetWidth(), flowerImage->GetHeight()); }

явное указание размеров выводимого изображения) является предпочтительным, т.к. это является подсказкой для GDI+, что масштабирования выполнять не нужно, и вывод произойдет быстрее.

2. Вывод изображения или его части в параллелограмм с соответствующим преобразованием координат всех точек исходного растра. В GDI отсутствует подобная функциональность. Этим методам для работы требуется массив из 3-х точек, образующих вершины параллелограмма (четвертая вершина вычисляется на их основе).

 

Наиболее быстро GDI+ умеет выводить растры оптимизированного для устройства формата, представленные классом CachedBitmap. При их создании необходимо указать оригинальный растр и устройство, на которое будет происходить вывод изображения:

CachedBitmap(Bitmap* bitmap, Graphics* graphics);

При смене характеристик устройства вывода (например, при изменении разрешения или глубины цвета экрана) CachedBitmap необходимо пересоздавать для работы с новым устройством, в противном случае вывод производиться не будет.

Для вывода оптимизированных растров на экран служит метод Graphics::DrawCachedBitmap:

Status DrawCachedBitmap(CachedBitmap* cb,INT x,INT y);

этот метод ускоряет вывод не только на экран, но и в память, за счет отказа от многих промежуточных вычислений.

 







Date: 2016-06-06; view: 494; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию