Manipulating CMX Formats

Converting CMX to PNG

Using Aspose.Imaging for Python via .NET, developers can convert CMX files to PNG images. This topic explains the approach to load existing CMX file and convert it to PNG.

The following code snippet shows you how to convert CMX files to PNG.

from aspose.imaging import Image, SmoothingMode
from aspose.imaging.imageoptions import CmxRasterizationOptions, PngOptions, PositioningTypes
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
with Image.load(os.path.join(data_dir, "template.cmx")) as image:
cmx_options = CmxRasterizationOptions()
cmx_options.positioning = PositioningTypes.DEFINED_BY_DOCUMENT
cmx_options.smoothing_mode = SmoothingMode.ANTI_ALIAS
png_options = PngOptions()
png_options.vector_rasterization_options = cmx_options
image.save(os.path.join(data_dir, "result.png"), png_options)
if delete_output:
os.remove(os.path.join(data_dir, "result.png"))

Memory Strategy optimization

Loading and creating of CMX images can be proceeded using memory strategy optimization - i.e. limiting memory buffer size for operation.

from aspose.imaging import Image, SmoothingMode, LoadOptions, TextRenderingHint, SmoothingMode
from aspose.imaging.imageoptions import CmxRasterizationOptions, PngOptions, PositioningTypes
import os
if 'TEMPLATE_DIR' in os.environ:
templates_folder = os.environ['TEMPLATE_DIR']
else:
templates_folder = r"C:\Users\USER\Downloads\templates"
delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
load_options = LoadOptions()
load_options.buffer_size_hint = 10 # set 10 MB as a limit for pixels storing
with Image.load(os.path.join(data_dir, "template.cmx"), load_options) as image:
cmx_options = CmxRasterizationOptions()
cmx_options.text_rendering_hint = TextRenderingHint.SINGLE_BIT_PER_PIXEL
cmx_options.smoothing_mode = SmoothingMode.ANTI_ALIAS
cmx_options.positioning = PositioningTypes.DEFINED_BY_DOCUMENT
png_options = PngOptions()
png_options.vector_rasterization_options = cmx_options
image.save(os.path.join(data_dir, "result.png"), png_options)
if delete_output:
os.remove(os.path.join(data_dir, "result.png"))