Ватсон Карли
Шрифт:
В данном разделе представим пример, затем обсудим несколько вопросов, о которых необходимо знать при выводе изображений. Мы можем сделать это, так как код для вывода изображений очень прост.
Вывод изображения требует также только одну строку кода в предположении, что имеется подходящий экземпляр объекта
В этой строке кода
По всей вероятности, изображения являются областью, в которой разработчики знакомые с GDI, заметят наибольшие различия с GDI+. В GDI работа с изображениями была достаточно непредсказуемой. Вывод изображения включал несколько нетривиальных шагов. Если изображение задавалось как битовое, загрузка его была относительно простой, но загрузка любого другого типа файла включала последовательность вызовов объектов OLE. В действительности вывод загруженного изображения на экран включал получение для него дескриптора, выбор его в памяти контекста устройства и затем выполнение блочного переноса между контекстами устройств. Хотя контексты устройств и дескрипторы, по-прежнему находятся за сценой и понадобятся, если придется делать (ложное редактирование изображений в коде программы, простые задачи теперь погружены в объектную модель GDI+.
Мы проиллюстрируем процесс вывода изображения с помощью примера
Как обычно в этой главе, проект
Затем загружаем файл в процедуру
Отметим, что размер изображения в пикселях задается как его свойство
Выбор
Наконец, сделаем еще одно замечание об изменениях, сделанных в коде метода
Удаление изображения, когда оно не требуется, является важной задачей, так как изображения обычно требуют много памяти. После вызова
Выполнение этого кода создает результат:
COMFest (www.comfest.co.uk) является неформальной группой разработчиков в Великобритании, которые встречаются для обсуждения самых новых технологий, обмена идеями и т. д. Снимок включает всех участников COMFest 4, за исключением автора этой главы, который фотографировал.