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")) |