Робота із зображеннями в PostScript | .NET
Додайте зображення в документ PS
Бібліотека Aspose.Page для .NET пропонує два методи додавання зображень до документа PS:
- для непрозорих зображень;
- для прозорих зображень;
Це було зроблено тому, що PostScript не підтримує прозорість, але напівпрозорі зображення, однак, можна візуалізувати як набір повністю прозорих і повністю непрозорих пікселів. Такі зображення називаються масками. Якщо ми хочемо бачити напівпрозоре зображення в документі PS як маску, яка краще відображатиме прозорість зображення, ми повинні виконати деяку перевірку та попередню обробку такого зображення.
Перевірка та попередня обробка вимагають часу. Тому, якщо хтось впевнений, що зображення повністю непрозоре, краще використовувати перший спосіб, оскільки він економить час виконання.
Другий метод визначає, чи є зображення повністю непрозорим, повністю прозорим чи напівпрозорим. Якщо воно повністю непрозоре, воно додається як непрозоре зображення в першому методі, якщо воно повністю прозоре, воно взагалі не додається до документа, якщо це напівпрозоре зображення, воно додається як маска зображення PostScript.
У прикладі нижче ми демонструємо, як додати повністю непрозоре зображення. Додавання прозорого зображення буде продемонстровано в статті «Робота з прозорістю».
Щоб додати зображення до нового PsDocument за допомогою бібліотеки Aspose.Page для .NET у цьому прикладі, ми виконуємо наступні дії:
- Створіть вихідний потік для отриманого файлу PS.
- Створіть об’єкт PsSaveOptions із параметрами за замовчуванням.
- Створіть 1-сторінковий PsDocument із уже створеним вихідним потоком і параметрами збереження.
- Створіть новий графічний стан.
- Створіть System.Drawing.Bitmap із файлу зображення.
- Створіть необхідну трансформацію для зображення.
- Додайте зображення до об’єкта PsDocument.
- Вихід із поточного стану графіки на верхній рівень.
- Закрийте сторінку.
- Збережіть документ.
1//Create an output stream for PostScript document
2using (Stream outPsStream = new FileStream(dataDir + "AddImage_outPS.ps", FileMode.Create))
3{
4 //Create save options with A4 size
5 PsSaveOptions options = new PsSaveOptions();
6
7 // Create new 1-paged PS Document
8 PsDocument document = new PsDocument(outPsStream, options, false);
9
10
11 document.WriteGraphicsSave();
12 document.Translate(100, 100);
13
14 //Create a Bitmap object from image file
15 using (Bitmap image = new Bitmap(dataDir + "TestImage Format24bppRgb.jpg"))
16 {
17 //Create image transform
18 Matrix transform = new Matrix();
19 transform.Translate(35, 300);
20 transform.Scale(3, 3);
21 transform.Rotate(-45);
22
23 //Add the image to document
24 document.DrawImage(image, transform, Color.Empty);
25 }
26
27 document.WriteGraphicsRestore();
28
29 //Close current page
30 document.ClosePage();
31
32 //Save the document
33 document.Save();
34}
Для Linux, MacOS та інших операційних систем, відмінних від Windows, ми пропонуємо використовувати наш пакет Nuget Aspose.Page.Drawing. Він використовує бекенд Aspose.Drawing замість системної бібліотеки System.Drawing.
Тому імпортуйте простір імен Aspose.Page.Drawing замість System.Drawing. У наведеному вище фрагменті коду Aspose.Page.Drawing.Bitmap використовуватиметься замість System.Drawing.Bitmap, Aspose.Page.Drawing.Drawing2D.Matrix використовуватиметься замість System.Drawing.Drawing2D.Matrix тощо. Наші приклади коду на GitHub містять усі необхідні заміни.
Дивіться роботу з зображеннями в документах PS у Java.
Результат виконання цього коду виглядає як
Ви можете завантажити приклади і файли даних з GitHub.