Робота з текстурами в PostScript | .NET

Додайте шаблон розбиття текстури в документ PS

Текстурний мозаїчний шаблон — це зображення, яке використовується для заливки або малювання об’єктів: фігур або тексту. Якщо розмір зображення менше розміру об’єкта, воно повторюється в напрямках X і Y для покриття всіх необхідних областей.

Процес повторення зображення всередині графічних об’єктів називається мозаїкою. Щоб установити фарбу або обведення в PsDocument, ми повинні передати об’єкт класу System.Drawing.Brush для малювання та об’єкт System.Drawing.Pen для обведення у відповідні методи.

Бібліотека Aspose.Page для .NET обробляє всі підкласи System.Drawing.Brush, які пропонуються платформою .NET. Це System.Drawing.SolidBrush, System.Drawing.TextureBrush, System.Drawing.LinearGradientBrush, System.Drawing.PathGradientBrush і System.Drawing.HatchBrush. Клас System.Drawing.Pen не можна розширити, оскільки він запечатаний, але він містить System.Drawing.Brush як властивість, тому Aspose.Page для бібліотеки .NET також може використовувати повний набір пензлів також для малювання ліній і окреслення форм і тексту.

Щоб намалювати графічні об’єкти текстурованим візерунком у бібліотеці Aspose.Page для .NET, достатньо просто передати System.Drawing.TextureBrush у SetPaint() або один із FillText () або FillAndStrokeText() методи, які приймають System.Drawing.Brush як параметр.

Щоб контурувати графічні об’єкти текстурованим візерунком у бібліотеці Aspose.Page для .NET, вам слід створити новий System.Drawing.Pen за допомогою System.Drawing.TextureBrush і передати його в SetStroke () або один із методів OutlineText() або FillAndStrokeText(), який приймає System.Drawing.Pen як параметр.

У наведеному нижче прикладі ми демонструємо, як заповнити фігуру та текст, а також окреслити текст шаблоном плитки текстури.

Опис кроків роботи з Texture Pattern і PsDocument у прикладі:

  1. Створіть вихідний потік для отриманого файлу PS.
  2. Створіть об’єкт PsSaveOptions із параметрами за замовчуванням.
  3. Створіть 1-сторінковий PsDocument із уже створеним вихідним потоком і параметрами збереження.
  4. Створіть новий графічний стан і переведіть його в потрібне положення.
  5. Створіть System.Drawing.Bitmap із файлу зображення.
  6. Створіть System.Drawing.TextureBrush із зображення.
  7. Встановіть необхідну трансформацію в пензлі текстури.
  8. Встановіть текстурну кисть як поточну фарбу в поточному графічному стані PsDocument.
  9. Створіть контур прямокутника.
  10. Заповніть прямокутник текстурним пензлем.
  11. Збережіть поточну фарбу як локальну змінну для майбутнього використання.
  12. Встановіть поточний штрих червоною ручкою.
  13. Окресліть прямокутник ручкою.
  14. Вихід із поточного стану графіки до стану графіки верхнього рівня.
  15. Створіть системний шрифт.
  16. Заливка та обведення (контур) тексту. Для заповнення текстури використовується кисть, а для обведення використовується чорна ручка.
  17. Наведіть контур тексту в іншій позиції за допомогою нового System.Drawing.Pen, створеного з текстурним пензлем як Brush.
  18. Закрийте сторінку.
  19. Збережіть документ.
 1// Paint rectangle and text and outline text with tiled image (texture pattern) in PS document.
 2
 3string outputFileName = "AddTextureTilingPattern_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11document.WriteGraphicsSave();
12document.Translate(200, 100);
13
14//Create a Bitmap object from image file
15using (Bitmap image = new Bitmap(DataDir + "TestTexture.bmp"))
16{
17    //Create texture brush from the image
18    TextureBrush brush = new TextureBrush(image, WrapMode.Tile);
19
20    //Add scaling in X direction to the mattern
21    Matrix transform = new Matrix(2, 0, 0, 1, 0, 0);
22    brush.Transform = transform;
23
24    //Set this texture brush as current paint
25    document.SetPaint(brush);
26}
27
28//Create rectangle path
29GraphicsPath path = new GraphicsPath();
30path.AddRectangle(new RectangleF(0, 0, 200, 100));
31
32//Fill rectangle
33document.Fill(path);
34
35//Get current paint
36Brush paint = document.GetPaint();
37
38//Set red stroke
39document.SetStroke(new Pen(new SolidBrush(Color.Red), 2));
40//Stroke the rectangle
41document.Draw(path);
42
43document.WriteGraphicsRestore();
44
45//Fill text with texture pattern                
46System.Drawing.Font font = new System.Drawing.Font("Arial", 96, FontStyle.Bold);
47document.FillAndStrokeText("ABC", font, 200, 300, paint, new Pen(Color.Black, 2));
48
49//Outline text with texture pattern
50document.OutlineText("ABC", font, 200, 400, new Pen(paint, 5));
51
52//Close current page
53document.ClosePage();
54
55//Save the document
56document.Save();

Для Linux, MacOS та інших операційних систем, відмінних від Windows, ми пропонуємо використовувати наш пакет Nuget Aspose.Page.Drawing. Він використовує бекенд Aspose.Drawing замість системної бібліотеки System.Drawing. Тому імпортуйте простір імен Aspose.Page.Drawing замість System.Drawing. У наведеному вище фрагменті коду Aspose.Page.Drawing.RectangleF використовуватиметься замість System.Drawing.RectangleF, Aspose.Page.Drawing.Drawing2D.GraphicsPath використовуватиметься замість System.Drawing.Drawing2D.GraphicsPath тощо. Наші приклади коду на GitHub містять усі необхідні заміни.

Дивіться роботу з текстурами в документах PS у Java.

Результат виконання цього коду виглядає як

Додати шаблон плитки текстури

Ви можете завантажити приклади і файли даних з GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.