Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 206

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 200 201 202 203 204 205 < 206 > 207 208 209 210 211 212 .. 404 >> Следующая

444

Глава 16

Класс image является абстрактным. У него существует два класса-наследника: Bitmap и Metafile.

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

Класс Metafile будет рассматриваться ниже в настоящей главе, где обсуждаются дополнительный возможности GDI + .

Всегда вызывайте метод Diapoaad для объектов Image.

Очень важно либо вызывать метод Di«poa«n для создаваемых объектов хвада, пнбо использовать для работы с ними конструкцию using, в противном случае приложение может исчерпать ресурсы системы.

Существует несколько источников получения растрового изображения: его можно загрузить из файла; оно может поступить из открытого потока; оно может быть создано из уже существующего образа; оно может быть создано как пустой образ, в котором потом будет осуществляться рисование. Если образ считывается из файла, то такой файл должен быть представлен в одном из следующих форматов: JPEG, GIF или BMP.

Практикум: пример использования класса Image

Приведенный здесь пример — очень простой; в нем производится считывание образа из файла и его рисование в окне. Запустите Visual Studio.NET и создайте новый проект C# Windows Application. Щелкните на форме правой кнопкой мыши и выберите в появившемся меню пункт View Code. Необходимо объявить частную переменную в классе Forml, а которой будет храниться используемый оираз после того, как мы считаем его из файла, Добавьте описание переменной theim^ge сразу после описания переменной components, как показано ниже:

public class Forml : System,Window3.Forms.Form

(

III <summary>

III Переменная, которая необходима для разработки.

Ill </summary>

private System.CooiponentModel.Container components;

private Image theImagej

Внесите изменения в конструктор, который должен иыглпдеть таким образам:

public Forml ()

к

п

II Необходимо для поддержки Windows Form Designer

11

InitializeComponent();

SetStyle(ControlStyles.Opaque, true);

thelmage = new Bitmap('swipes.jpg');

//

// Следует сделать: Любой код, относящийся к конструктору,

II должен бьггь добавлен после вызова метода InitializeComponer;;

//
Введение в GDJ+

445

Теперь добавьте в наш класс метод OnPaintEvent о: protected override void OnPaint(PaintEventArgs e)

<

Graphic# о “ e.Graphics? g.Drawlmaflc (thelmage, CiientRectangie] ;

)

В заключение, нам необходимо уничтожить тот образ image, который хранится в переменной класса. Модифицируйте метод Dispose о класса Forml следующим образом:

protected override void Dispose! bool disposing )

(

if( disposing )

(

thelmage.Dispose(); if (components I* null)

{ ¦

components.Dispose();

} .

}

base.Dispose( disposing )s

}

Перед тем как создавать данный класс, требуется создать образ л поместить его в ту же директорию, в которой в дальнейшем будет строиться выполняемый модуль приложения. По умолчанию для этого используется поддиректория директории, в которой располагается проект Visual Studio. Например, если данный пример был нами создан в директории с именем imageExample, то выполняемый модуль приложения будет строиться в директории iraageExample\bin\Debug, Именно в этой директории должен располагаться соответствующий JPG-файл.

Чтобы откомпилировать и запустить программу, нажмите клавишу F5. Запустив программу, вы увидите окно, представленное на рисунке слева.

Как это работает

В конструкторе создается экземпляр объекта Bitmap, который присваивается объявленной ранее переменной image.

Далее в событии OnPaint () рисуется образ. При рисовании функции DrawimageO в качестве одного из аргументов передается соответствующий прямоугольник. Если размеры образа оказываются отличными от прямоугольника, то GDI+ автоматически изменяет размеры образа в соответствии с размерами прямоугольника. Одним из способов добиться того, чтобы GDI+ не изменяло размеров образа, является передача методу Drawimegeo размеров рисунка, которые хранятся в свойствах Width И Height,

Рисование с помощью класса TextureBrush

Модифицируем пример таким образом, чтобы с помощью получаемого образа создавался объект TextureBrush, а затем с помощью этой кисти рисовался эллипс. Возьмем за основу предыдущий пример и внесем в него некоторые изменения:


448

Глава 16

g.FillRectangle(Brushes.White, CiientRectangie);

Brush tBrush = new TextureBrush(smallImage, new Rectanele(0, 0,

small Image-Width, siaalllmage.Height)) ; Font trFont * new Font ('Times New Roman', 32,

PontStyle.Bold I FontSty.' .Italic) ; g.Drawstring('Hello Image', trFont, tBrush, CiientRectangie),' tBrush.Dispose(); trFont.Dispose()I
Предыдущая << 1 .. 200 201 202 203 204 205 < 206 > 207 208 209 210 211 212 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.