Малювання зображень

Малювання ліній

У цьому прикладі використовується клас Graphics для малювання форм ліній на поверхні зображення. Для демонстрації операції приклад створює нове зображення та малює лінії на поверхні зображення, використовуючи метод DrawLine, викладений класом Graphics. Спочатку ми створимо об’єкт PsdImage, вказавши його висоту та ширину.

Після створення зображення ми використовуємо метод Clear, викладений класом Graphics, щоб встановити його фоновий колір. Метод DrawLine класу Graphics використовується для малювання лінії на зображенні, що з’єднує дві структури точок. Цей метод має кілька варіантів перегрузки, які приймають екземпляр класу Pen та пари координат точок або структури Point/PointF як аргументи. Клас Pen визначає об’єкт, що використовується для малювання ліній, кривих та фігур. У класу Pen є кілька перегружених конструкторів для малювання ліній з вказаним кольором, шириною та пензликом. Клас SolidBrush використовується для постійного малювання з конкретним кольором. Наприкінці зображення експортується в формат файлу BMP. Наведений нижче уривок коду показує, як малювати форми ліній на поверхні зображення.

String dataDir = Utils.getDataDir(DrawingLines.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Lines.bmp";
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (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.getYellow());
// Draw two dotted diagonal lines by specifying the Pen object having blue color and co-ordinate Points
graphic.drawLine(new Pen(Color.getBlue()), 9, 9, 90, 90);
graphic.drawLine(new Pen(Color.getBlue()), 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.getRed())), new Point(9, 9), new Point(9, 90));
graphic.drawLine(new Pen(new SolidBrush(Color.getAqua())), new Point(9, 90), new Point(90, 90));
graphic.drawLine(new Pen(new SolidBrush(Color.getBlack())), new Point(90, 90), new Point(90, 9));
graphic.drawLine(new Pen(new SolidBrush(Color.getWhite())), 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. Наведений нижче уривок коду показує, як малювати форму еліпса на поверхні зображення.

String dataDir = Utils.getDataDir(DrawingEllipse.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Ellipse.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (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.getYellow());
// Draw a dotted ellipse shape by specifying the Pen object having red color and a surrounding Rectangle
graphic.drawEllipse(new Pen(Color.getRed()), 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.getBlue())), 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. Наведений нижче уривок коду показує, як малювати форму прямокутника на поверхні зображення.

// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Rectangle.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (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.getYellow());
graphic.drawRectangle(new Pen(Color.getRed()), new Rectangle(30, 10, 40, 80));
graphic.drawRectangle(new Pen(new SolidBrush(Color.getBlue())), 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. Наведений нижче уривок коду показує, як малювати форму дуги на поверхні зображення.

String dataDir = Utils.getDataDir(DrawingArc.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Arc.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (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.getYellow());
// 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.getBlack()), 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. Наведений нижче уривок коду показує, як малювати форму кривої Без’є на поверхні зображення.

String dataDir = Utils.getDataDir(DrawingBezier.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String outpath = dataDir + "Bezier.bmp";
// Create an instance of BmpOptions and set its various properties
BmpOptions saveOptions = new BmpOptions();
saveOptions.setBitsPerPixel(32);
// Create an instance of Image
try (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.getYellow());
// Initializes the instance of PEN class with black color and width
Pen BlackPen = new Pen(Color.getBlack(), 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. Наведений нижче уривок коду показує, як малювати зображення за допомогою основного функціоналу.

String dataDir = Utils.getDataDir(CoreDrawingFeatures.class) + "DrawingImages/";
// Create an instance of BmpOptions and set its various properties
String loadpath = dataDir + "sample.psd";
String outpath = dataDir + "CoreDrawingFeatures.bmp";
// Create an instance of Image
try (PsdImage image = new PsdImage(loadpath)) {
// load pixels
int[] 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());
}