Browse our Products

Aspose.Imaging for Python via .NET 26.9 - Release notes

Competitive features:

  • Implement VectorImage.Create method that provide the ability to create a vector image without specifying its format.
KeySummaryCategory
IMAGINGPYTHONNET-545BMP: Add support the BITMAP_INFO_HEADER_SIZE_V_3 headerEnhancement
IMAGINGPYTHONNET-544Error on converting TIFF to PNGEnhancement
IMAGINGPYTHONNET-543Filter OptimizationEnhancement
IMAGINGPYTHONNET-542EMF: incorrect export to PNG and PDFEnhancement
IMAGINGPYTHONNET-541Implement VectorImage.Create method that provide the ability to create a vector image without specifying its format.Feature

Public API changes:

Added APIs:

Method aspose.imaging.VectorImage.create(width, height, graphics_unit)

Removed APIs:

Usage Examples:

IMAGINGPYTHONNET-545 BMP: Add support the BITMAP_INFO_HEADER_SIZE_V_3 header

from aspose.imaging import Image

with Image.load("Sign.bmp") as image:
   image.save("Sign.png")

IMAGINGPYTHONNET-543 Filter Optimization

from aspose.pycore import as_of
from aspose.imaging import RasterImage, Image
import datetime

with as_of(Image.load("0619214.tiff"), RasterImage) as image:
    s1 = datetime.datetime.now()
    image.normalize_histogram()
    s2 = datetime.datetime.now()
	s3 = s2 - s1
    print(f"time:{s3.total_seconds()} sec.")

Current version(8 cores): 2.958925 sec.
Previous version: 2.905903 sec.
~x 1.018 increase


from aspose.pycore import as_of
from aspose.imaging import RasterImage, Image
import datetime

with as_of(Image.load("0619214.tiff"), RasterImage) as image:
    s1 = datetime.datetime.now()
    image.auto_brightness_contrast()
    s2 = datetime.datetime.now()
	s3 = s2 - s1
    print(f"time:{s3.total_seconds()} sec.")

Current version(8 cores): 5.473563 sec.
Previous version: 19.871083 sec.
~x 3.63 increase

IMAGINGPYTHONNET-542 EMF: incorrect export to PNG and PDF

from aspose.imaging import Image

with Image.load("1.emf") as image:
	image.save("1.emf.pdf")

IMAGINGPYTHONNET-541 Implement VectorImage.Create method that provide the ability to create a vector image without specifying its format.

## Create a new vector image, draw some figures and text, and save it into SVG, EMF, WMF, PNG files.

from aspose.imaging import VectorImage, GraphicsUnit, Graphics, Color, RectangleF, Font, FontStyle, PointF, Pen
from aspose.imaging.brushes import SolidBrush
from aspose.imaging.imageoptions import VectorRasterizationOptions, SvgOptions, WmfOptions, EmfOptions, PngOptions

with VectorImage.create(1000, 1000, GraphicsUnit.PIXEL) as image:
    deviceContext = Graphics(image)
    deviceContext.page_unit = GraphicsUnit.PIXEL

    brush = SolidBrush(Color.yellow);
    pen = Pen(Color.blue);
	
	deviceContext.fill_pie(brush, RectangleF(10, 10, 80, 80), -270, 270)
	deviceContext.draw_pie(pen, RectangleF(10, 10, 80, 80), -270, 270)
	deviceContext.draw_arc(pen, RectangleF(100, 10, 80, 80), 180, 90)

	deviceContext.fill_ellipse(brush, RectangleF(200, 10, 80, 80))
	deviceContext.draw_ellipse(pen, RectangleF(200, 10, 80, 80))
	deviceContext.fill_rectangle(brush, RectangleF(300, 10, 80, 80))
	deviceContext.fill_rectangle(brush, RectangleF(400, 10, 80, 80))
	
	deviceContext.draw_string("Hello World!", Font("Arial", 16, FontStyle.BOLD), SolidBrush(Color.black), PointF(10, 110))

	# export in vector formats
	
	vector_options = VectorRasterizationOptions()
	
	save_options = SvgOptions()
	vector_options.background_color = Color.empty
	save_options.vector_rasterization_options = vector_options
	
	image.save("output.svg", save_options)
	
	save_options = WmfOptions()
	vector_options.background_color = Color.white
	save_options.vector_rasterization_options = vector_options
	
	image.save("output.wmf", save_options)
	
	save_options = EmfOptions()
	vector_options.background_color = Color.empty
	save_options.vector_rasterization_options = vector_options
	
	image.save("output.emf", save_options)

	# export in PNG (raster format)
	
	image.save("output.png", PngOptions())