Рисование изображений

Рисование Линий

Этот пример использует класс Graphics для рисования линий на поверхности изображения. Чтобы продемонстрировать операцию, пример создает новое изображение и рисует линии на его поверхности, используя метод DrawLine класса Graphics. Сначала мы создадим PsdImage, указав его высоту и ширину.

После создания изображения мы будем использовать метод Clear, предоставляемый классом Graphics, чтобы установить цвет фона. Метод DrawLine класса Graphics используется для рисования линии на изображении, соединяющей две точки. Этот метод имеет несколько перегрузок, принимающих экземпляр класса Pen и пары координат точек или структуры Point/PointF в качестве аргументов. Класс Pen определяет объект, используемый для рисования линий, кривых и фигур. У класса Pen есть несколько конструкторов для рисования линий с заданным цветом, шириной и кистью. Класс SolidBrush используется для непрерывного рисования с определенным цветом. Наконец, изображение экспортируется в формат bmp. В следующем фрагменте кода показано, как рисовать линии на поверхности изображения.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outpath = dataDir + "Lines.bmp";
BmpOptions saveOptions = new BmpOptions();
saveOptions.BitsPerPixel = 32;
// Create an instance of Image
using (Image image = new PsdImage(100, 100))
{
// Create and initialize an instance of Graphics class and Clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.Clear(Color.Yellow);
// Draw two dotted diagonal lines by specifying the Pen object having blue color and co-ordinate Points
graphic.DrawLine(new Pen(Color.Blue), 9, 9, 90, 90);
graphic.DrawLine(new Pen(Color.Blue), 9, 90, 90, 9);
// Draw a four continuous line by specifying the Pen object having Solid Brush with red color and two point structures
graphic.DrawLine(new Pen(new SolidBrush(Color.Red)), new Point(9, 9), new Point(9, 90));
graphic.DrawLine(new Pen(new SolidBrush(Color.Aqua)), new Point(9, 90), new Point(90, 90));
graphic.DrawLine(new Pen(new SolidBrush(Color.Black)), new Point(90, 90), new Point(90, 9));
graphic.DrawLine(new Pen(new SolidBrush(Color.White)), new Point(90, 9), new Point(9, 9));
image.Save(outpath, saveOptions);
}

Рисование Эллипса

Пример рисования эллипса является второй статьей в серии статей о рисовании форм. Мы будем использовать класс Graphics для рисования формы эллипса на поверхности изображения. Чтобы продемонстрировать операцию, пример создает новое изображение и рисует форму эллипса на его поверхности с использованием метода DrawEllipse, предоставляемого классом Graphics. Сначала мы создадим PsdImage, указав его высоту и ширину.

После создания изображения мы создадим и инициализируем объект класса Graphics, установим цвет фона изображения с помощью метода Clear класса Graphics. Метод DrawEllipse класса Graphics используется для рисования эллипса на поверхности изображения, заданной структурой ограничивающего прямоугольника. Этот метод имеет несколько перегрузок, принимающих экземпляры классов Pen и Rectangle/RectangleF или пару координат, высоту и ширину в качестве аргументов. Класс Pen определяет объект, используемый для рисования линий, кривых и фигур. Класс Pen имеет несколько перегруженных конструкторов для рисования линий с заданным цветом, шириной и кистью. Класс Rectangle хранит набор из четырех целых чисел, представляющих местоположение и размер прямоугольника. Класс Rectangle имеет несколько перегруженных конструкторов для рисования структуры прямоугольника с указанным размером и местоположением. Класс SolidBrush используется для непрерывного рисования с определенным цветом. Наконец, изображение экспортируется в формат bmp. В следующем фрагменте кода показано, как рисовать эллипс на поверхности изображения.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outpath = dataDir + "Ellipse.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.BitsPerPixel = 32;
// Create an instance of Image
using (Image image = new PsdImage(100, 100))
{
// Create and initialize an instance of Graphics class and Clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.Clear(Color.Yellow);
// Draw a dotted ellipse shape by specifying the Pen object having red color and a surrounding Rectangle
graphic.DrawEllipse(new Pen(Color.Red), new Rectangle(30, 10, 40, 80));
// Draw a continuous ellipse shape by specifying the Pen object having solid brush with blue color and a surrounding Rectangle
graphic.DrawEllipse(new Pen(new SolidBrush(Color.Blue)), new Rectangle(10, 30, 80, 40));
// export image to bmp file format.
image.Save(outpath, saveOptions);
}

Рисование Прямоугольника

В этом примере мы нарисуем форму прямоугольника на поверхности изображения. Чтобы продемонстрировать операцию, пример создает новое изображение и рисует форму прямоугольника на его поверхности с использованием метода DrawRectangle, предоставляемого классом Graphics. Сначала мы создадим PsdImage, указав его высоту и ширину. Затем установим цвет фона изображения с помощью метода Clear класса Graphics.

Метод DrawRectangle класса Graphics используется для рисования формы прямоугольника на поверхности изображения, указанной структурой прямоугольника. Этот метод имеет несколько перегрузок, принимающих экземпляры классов Pen и Rectangle/RectangleF или пару координат, ширину и высоту в качестве аргументов. Класс Rectangle хранит набор из четырех целых чисел, представляющих местоположение и размер прямоугольника. Класс Rectangle имеет несколько перегруженных конструкторов для рисования структуры прямоугольника с указанным размером и местоположением. Наконец, изображение экспортируется в формат bmp. В следующем фрагменте кода показано, как рисовать прямоугольник на поверхности изображения.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outpath = dataDir + "Rectangle.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.BitsPerPixel = 32;
// Create an instance of Image
using (Image image = new PsdImage(100, 100))
{
// Create and initialize an instance of Graphics class, Clear Graphics surface, Draw a rectangle shapes and save all changes.
Graphics graphic = new Graphics(image);
graphic.Clear(Color.Yellow);
graphic.DrawRectangle(new Pen(Color.Red), new Rectangle(30, 10, 40, 80));
graphic.DrawRectangle(new Pen(new SolidBrush(Color.Blue)), new Rectangle(10, 30, 80, 40));
// export image to bmp file format.
image.Save(outpath, saveOptions);
}

Рисование Дуги

В этом разделе серии статей о формах рисования мы нарисуем форму дуги на поверхности изображения. Мы будем использовать метод DrawArc класса Graphics для демонстрации операции на изображении BMP. Сначала мы создадим PsdImage, указав его высоту и ширину. После создания изображения, мы будем использовать метод Clear, предоставляемый классом Graphics, чтобы установить цвет фона.

Метод DrawArc класса Graphics используется для рисования формы дуги на поверхности изображения. DrawArc представляет часть эллипса, указанного структурой прямоугольника или парой координат. Этот метод имеет несколько перегрузок, принимающих экземпляры классов Pen и Rectangle/RectangleF или пару координат, ширину и высоту в качестве аргументов. Наконец, изображение экспортируется в формат bmp. В следующем фрагменте кода показано, как рисовать форму дуги на поверхности изображения.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outpath = dataDir + "Arc.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.BitsPerPixel = 32;
// Create an instance of Image
using (Image image = new PsdImage(100, 100))
{
// Create and initialize an instance of Graphics class and clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.Clear(Color.Yellow);
// Draw an arc shape by specifying the Pen object having red black color and coordinates, height, width, start & end angles
int width = 100;
int height = 200;
int startAngle = 45;
int sweepAngle = 270;
// Draw arc to screen and save all changes.
graphic.DrawArc(new Pen(Color.Black), 0, 0, width, height, startAngle, sweepAngle);
// export image to bmp file format.
image.Save(outpath, saveOptions);
}

Рисование Безье

Этот пример использует класс Graphics для рисования кривой Безье на поверхности изображения. Чтобы продемонстрировать операцию, пример создает новое изображение и рисует форму кривой Безье на его поверхности с использованием метода DrawBezier, предоставляемого классом Graphics. Сначала мы создадим PsdImage, указав его высоту и ширину. После создания изображения, мы будем использовать метод Clear, предоставляемый классом Graphics, чтобы установить цвет фона.

Метод DrawBezier класса Graphics используется для рисования кривой Безье на поверхности изображения, определенной четырьмя структурами Point. Этот метод имеет несколько перегрузок, принимающих экземпляры класса Pen и четыре упорядоченных пары координат или четыре структуры Point/PointF или массив структур Point/PointF в качестве аргументов. Класс Pen определяет объект, используемый для рисования линий, кривых и фигур. Класс Pen имеет несколько перегруженных конструкторов для рисования линий с заданным цветом, шириной и кистью. Наконец, изображение экспортируется в формат bmp. В следующем фрагменте кода показано, как рисовать кривую Безье на поверхности изображения.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outpath = dataDir + "Bezier.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.BitsPerPixel = 32;
// Create an instance of Image
using (Image image = new PsdImage(100, 100))
{
// Create and initialize an instance of Graphics class and clear Graphics surface
Graphics graphic = new Graphics(image);
graphic.Clear(Color.Yellow);
// Initializes the instance of PEN class with black color and width
Pen BlackPen = new Pen(Color.Black, 3);
float startX = 10;
float startY = 25;
float controlX1 = 20;
float controlY1 = 5;
float controlX2 = 55;
float controlY2 = 10;
float endX = 90;
float endY = 25;
// Draw a Bezier shape by specifying the Pen object having black color and co-ordinate Points and save all changes.
graphic.DrawBezier(BlackPen, startX, startY, controlX1, controlY1, controlX2, controlY2, endX, endY);
// export image to bmp file format.
image.Save(outpath, saveOptions);
}

Рисование изображений с использованием Основных Функций

Aspose.PSD - это библиотека, предлагающая множество ценных функций, в том числе создание изображений с нуля. Рисуйте с использованием основных функций, таких как манипулирование информацией о битмапе изображения или использование продвинутых функций, таких как Graphics и GraphicsPath для рисования форм на поверхности изображения с помощью разных кистей и перьев. Используя класс RasterImage Aspose.PSD, вы можете получить информацию о пикселях области изображения и манипулировать ею. Класс RasterImage содержит всю основную функциональность рисования, такую как получение и установка пикселей и другие методы для манипуляции изображением. Создайте новое изображение, используя любой из методов, описанных в создании файлов, и присвойте его экземпляру класса RasterImage. Используйте метод LoadPixels класса RasterImage для получения информации о пикселях части изображения. После получения массива пикселей вы можете манипулировать им, например, изменить цвет каждого пикселя. После манипулирования информацией о пикселях, установите ее обратно в нужную область изображения, используя метод SavePixels класса RasterImage. В следующем фрагменте кода показано, как рисовать изображения, используя основные функции.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string loadpath = dataDir + "sample.psd";
string outpath = dataDir + "CoreDrawingFeatures.bmp";
// Create an instance of Image
using (PsdImage image = new PsdImage(loadpath))
{
// load pixels
var pixels = image.LoadArgb32Pixels(new Rectangle(0, 0, 100, 10));
for (int i = 0; i < pixels.Length; i++)
{
// specify pixel color value (gradient in this case).
pixels[i] = i;
}
// save modified pixels.
image.SaveArgb32Pixels(new Rectangle(0, 0, 100, 10), pixels);
// export image to bmp file format.
image.Save(outpath, new BmpOptions());
}