Trabalhar com Gradiente em ficheiro XPS | Python
Um gradiente é uma transição gradual entre duas ou mais cores ou tons. Nas artes visuais, gráficos e design, os gradientes são frequentemente utilizados para criar transições suaves de uma cor para outra, adicionando profundidade, dimensão e interesse visual a um objeto ou imagem. Os gradientes podem variar em complexidade, desde simples gradientes de duas cores até misturas mais complexas que envolvem múltiplas cores ou até mesmo níveis de transparência.
Aqui descobrirá como adicionar diferentes tipos de gradientes a ficheiros XPS em Python.
Adicionar Gradiente em Documento XPS
Adicionar Gradiente Horizontal
O Aspose.Page para Python via .NET disponibiliza a classe XpsGradientBrush, criada para incorporar gradientes em documentos XPS. Para tal, deve especificar XpsGradientStop e adicionar XpsPath ao objeto da classe XpsDocument. O seguinte excerto de código demonstra a funcionalidade completa para adicionar um gradiente horizontal a um documento XPS:
O resultado
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_gradient()
3# Create a new XPS Document
4doc = XpsDocument()
5# Initialize a List of XpsGradentStop
6stops = []
7stops.append(doc.create_gradient_stop(doc.create_color(255, 244, 253, 225), 0.0673828))
8stops.append(doc.create_gradient_stop(doc.create_color(255, 251, 240, 23), 0.314453))
9stops.append(doc.create_gradient_stop(doc.create_color(255, 252, 209, 0), 0.482422))
10stops.append(doc.create_gradient_stop(doc.create_color(255, 241, 254, 161), 0.634766))
11stops.append(doc.create_gradient_stop(doc.create_color(255, 53, 253, 255), 0.915039))
12stops.append(doc.create_gradient_stop(doc.create_color(255, 12, 91, 248), 1))
13# Create a new path by defining geometery in an abbreviation form
14path = doc.add_path(doc.create_path_geometry("M 10,210 L 228,210 228,300 10,300"))
15path.render_transform = doc.create_matrix(1, 0, 0, 1, 20, 70)
16gradient: XpsLinearGradientBrush = doc.create_linear_gradient_brush(aspose.pydrawing.PointF(10, 0), aspose.pydrawing.PointF(228, 0))
17path.fill = gradient
18gradient.gradient_stops.extend(stops)
19# Save the resultant XPS document
20doc.save(data_dir + "AddHorizontalGradient_outXPS.xps")
Adicionar Gradiente Vertical
O Aspose.Page para Python via .NET inclui a classe XpsGradientBrush para incorporar gradientes em documentos XPS. Para tal, deve especificar XpsGradientStop e adicionar XpsPath ao objeto da classe XpsDocument. O seguinte excerto de código demonstra a funcionalidade completa para adicionar um gradiente vertical a um documento XPS:
O resultado
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_gradient()
3# Create a new XPS Document
4doc = XpsDocument()
5# Initialize a List of XpsGradentStop
6stops = []
7stops.append(doc.create_gradient_stop(doc.create_color(253, 255, 12, 0), 0))
8stops.append(doc.create_gradient_stop(doc.create_color(252, 255, 154, 0), 0.359375))
9stops.append(doc.create_gradient_stop(doc.create_color(252, 255, 56, 0), 0.424805))
10stops.append(doc.create_gradient_stop(doc.create_color(253, 255, 229, 0), 0.879883))
11stops.append(doc.create_gradient_stop(doc.create_color(252, 255, 255, 234), 1))
12# Create a new path by defining geometery in an abbreviation form
13path = doc.add_path(doc.create_path_geometry("M 10,110 L 228,110 228,200 10,200"))
14path.render_transform = doc.create_matrix(1, 0, 0, 1, 20, 70)
15gradient: XpsLinearGradientBrush = doc.create_linear_gradient_brush(aspose.pydrawing.PointF(10, 110), aspose.pydrawing.PointF(10, 200))
16path.fill = gradient
17gradient.gradient_stops.extend(stops)
18# Save the resultant XPS document
19doc.save(data_dir + "AddVerticalGradient_outXPS.xps")
Adicionar Gradiente Diagonal
O próximo excerto de código mostra a funcionalidade completa de como adicionar um gradiente linear num documento XPS:
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_gradient()
3# Create a new XPS Document
4doc = XpsDocument()
5# Initialize a List of XpsGradentStop
6stops = []
7# Add Colors to Gradient
8stops.append(doc.create_gradient_stop(doc.create_color(0, 142, 4), 0))
9stops.append(doc.create_gradient_stop(doc.create_color(255, 202, 0), 0.144531))
10stops.append(doc.create_gradient_stop(doc.create_color(255, 250, 0), 0.264648))
11stops.append(doc.create_gradient_stop(doc.create_color(255, 0, 0), 0.414063))
12stops.append(doc.create_gradient_stop(doc.create_color(233, 0, 255), 0.544922))
13stops.append(doc.create_gradient_stop(doc.create_color(107, 27, 190), 0.694336))
14stops.append(doc.create_gradient_stop(doc.create_color(63, 0, 255), 0.844727))
15stops.append(doc.create_gradient_stop(doc.create_color(0, 199, 80), 1))
16# Create a new path by defining geometery in an abbreviation form
17path = doc.add_path(doc.create_path_geometry("M 10,10 L 228,10 228,100 10,100"))
18path.render_transform = doc.create_matrix(1, 0, 0, 1, 20, 70)
19gradient: XpsLinearGradientBrush = doc.create_linear_gradient_brush(aspose.pydrawing.PointF(10, 10), aspose.pydrawing.PointF(228, 100))
20path.fill = gradient
21gradient.gradient_stops.extend(stops)
22# Save the resultant XPS document
23doc.save(data_dir + "AddDiagonalGradient_outXPS.xps")
O resultado
Pode descarregar exemplos e ficheiros de dados do GitHub.