Trabajar con imágenes en PostScript | .NETO
Agregar imagen en documento PS
La biblioteca Aspose.Page para .NET ofrece dos métodos para agregar imágenes a un documento PS:
- para imágenes opacas;
- para imágenes transparentes;
Se creó porque PostScript no admite transparencia, pero las imágenes translúcidas, sin embargo, se pueden representar como un conjunto de píxeles completamente transparentes y completamente opacos. Estas imágenes se denominan máscaras. Si queremos ver la imagen translúcida en el documento PS como máscara, que reflejará mejor la transparencia de la imagen, debemos realizar algunas comprobaciones y preprocesamiento de dicha imagen.
La verificación y el preprocesamiento requieren tiempo. Por tanto, si alguien está seguro de que la imagen es totalmente opaca, es mejor utilizar el primer método, porque ahorra tiempo de ejecución.
El segundo método reconoce si la imagen es completamente opaca o completamente transparente o translúcida. Si es completamente opaco, se agrega como imagen opaca en el primer método. si es completamente transparente, no se agrega al documento en absoluto; si es la imagen translúcida, se agrega como una máscara de imagen PostScript.
En el siguiente ejemplo, demostramos cómo agregar una imagen completamente opaca. La adición de una imagen transparente se demostrará en el artículo “Trabajar con transparencia”.
Para agregar una imagen a un nuevo PsDocument con la biblioteca Aspose.Page para .NET en este ejemplo, seguimos los siguientes pasos:
- Cree una secuencia de salida para el archivo PS resultante.
- Cree el objeto PsSaveOptions con opciones predeterminadas.
- Cree un PsDocument de 1 página con un flujo de salida ya creado y opciones para guardar.
- Cree un nuevo estado de gráficos.
- Cree System.Drawing.Bitmap a partir del archivo de imagen.
- Crea la transformación necesaria para la imagen.
- Agregue la imagen al objeto PsDocument.
- Salga del estado de gráficos actual al nivel uno superior.
- Cierra la página.
- Guarde el documento.
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}
Para Linux, MacOS y otros sistemas operativos distintos de Windows, ofrecemos utilizar nuestro paquete Nuget Aspose.Page.Drawing. Utiliza el backend Aspose.Drawing en lugar de la biblioteca del sistema System.Drawing.
Así que importe el espacio de nombres Aspose.Page.Drawing en lugar de System.Drawing. En el fragmento de código anterior se utilizará Aspose.Page.Drawing.Bitmap en lugar de System.Drawing.Bitmap, Se utilizará Aspose.Page.Drawing.Drawing2D.Matrix en lugar de System.Drawing.Drawing2D.Matrix, etc. Nuestros ejemplos de código en GitHub contienen todas las sustituciones necesarias.
Consulte cómo trabajar con imágenes en documentos PS en Java.
El resultado de ejecutar este código aparece como
Puede descargar ejemplos y archivos de datos desde GitHub.