Робота з кліпами у файлі PS| Python
Додайте кліп у документ PS
У документі PS кліп — це межа, визначена шляхом, який обмежує видимість вмісту в межах поточного стану графіки в програмах перегляду або редакторів PS. Будь-який вміст, що виходить за межі цієї межі, буде скорочено.
У Python відсічні контури можна призначати трьома способами:
- Використовуючи будь-який клас, реалізований у aspose.pydrawing.GraphicsPath, здатний містити замкнуті форми.;
- за допомогою текстової схеми;
- Використовуючи 2-кольорове зображення 1 bpp (біт на піксель) як трафаретну маску.
Наразі бібліотека Aspose.Page для Python через .NET підтримує перший і другий методи відсікання. У наведеному нижче прикладі ми створюємо круглу фігуру як відсічний контур і використовуємо її, щоб відрізати прямокутник із синьою заливкою в тому самому графічному стані.
У наведеному нижче прикладі ми отримуємо форму кола як відсічний контур і відрізаємо прямокутник із синьою заливкою в такому самому графічному стані.
Щоб додати кліп до нового PsDocument за допомогою Aspose.Page для Python через бібліотеку .NET у цьому прикладі, ми виконуємо такі дії:
- Створіть вихідний потік для отриманого файлу PS.
- Створіть об’єкт PsSaveOptions із параметрами за замовчуванням.
- Створіть 1-сторінковий PsDocument із уже створеним вихідним потоком і параметрами збереження.
- Створіть новий графічний стан.
- Створіть форму кола (aspose.pydrawing.GraphicsPath об’єкт).
- Встановіть кліп із цим шляхом.
- Установіть фарбу для поточного стану графіки PsDocument.
- Заповніть контур прямокутника поточною фарбою.
- Вийти з поточного стану графіки на верхній рівень.
- Перекладіть на місце зафарбованого прямокутника.
- Обведіть пунктирною лінією межі того самого прямокутника над зафарбованим, щоб показати межі обрізаного прямокутника з заливкою.
- Закрийте сторінку.
- Збережіть документ.
1# Create an output stream for PostScript document
2with open(data_dir + "Clipping_outPS.ps", "wb") as out_ps_stream:
3 # Create the save options with default values
4 options = PsSaveOptions()
5
6 # Create new 1-paged PS Document
7 document = PsDocument(out_ps_stream, options, False)
8
9 # Create a graphics path from the rectangle
10 rectange_path = aspose.pydrawing.drawing2d.GraphicsPath()
11 rectange_path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, 300, 200))
12
13 ##################################### Clipping by the shape //////////////////////////////////////////////////////////////////////
14
15 # Save the graphics state in order to return back to this state after the transformation
16 document.write_graphics_save()
17
18 # Displace the current graphics state on 100 points to the right і 100 points to the bottom.
19 document.translate(100, 100)
20
21 # Create a graphics path from the circle
22 circle_path = aspose.pydrawing.drawing2d.GraphicsPath()
23 circle_path.add_ellipse(aspose.pydrawing.RectangleF(50, 0, 200, 200))
24
25 # Add clipping by circle to the current graphics state
26 document.clip(circle_path)
27
28 # Set the paint in the current graphics state
29 document.set_paint(aspose.pydrawing.SolidBrush(aspose.pydrawing.Color.blue))
30
31 # Fill the rectangle in the current graphics state (with clipping)
32 document.fill(rectange_path)
33
34 # Restore the graphics state to the previus (upper) level
35 document.write_graphics_restore()
36
37 # Displace the upper level graphics state on 100 points to the right і 100 points to the bottom.
38 document.translate(100, 100)
39
40 pen = aspose.pydrawing.Pen(aspose.pydrawing.SolidBrush(aspose.pydrawing.Color.blue))
41 pen.width = float(2)
42 pen.dash_style = aspose.pydrawing.drawing2d.DashStyle.DASH
43
44 document.set_stroke(pen)
45
46 # Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
47 document.draw(rectange_path)
48
49 ########################################################################################################################
50
51 # Close the current page
52 document.close_page()
53
54 # Save the document
55 document.save()
Результатом виконання цього коду є
Ви можете завантажити приклади і файли даних з GitHub.