aspose-imaging-python-net


Nameaspose-imaging-python-net JSON
Version 24.11.0 PyPI version JSON
download
home_pagehttps://products.aspose.com/imaging/python-net
SummaryAspose.Imaging for Python via .NET is Another Python Imaging Library. It allows developers to easily create, load, manipulate, convert, compress images or photos using this API.
upload_time2024-11-01 17:00:10
maintainerNone
docs_urlNone
authorAspose
requires_python<3.13,>=3.5
licenseFree To Use But Restricted,Other/Proprietary License
keywords image convert manipulate drawing load update save merge crop resize flip rotate canvas graphics jpeg png gif svg tiff bigtiff bmp dicom eps tga webp cdr cmx djvu dng tga html5 dxf raster metafiles wmf emf fodg ico pdf svgz emz wmz
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## Imaging Manipulation API

[Product Page](https://products.aspose.com/imaging/python-net/) | [Documentation](https://docs.aspose.com/imaging/python-net/) | [Demos](https://products.aspose.app/imaging/family) | [Blog](https://blog.aspose.com/categories/aspose.imaging-product-family/) | [API Reference](https://reference.aspose.com/imaging/python-net/) | [Search](https://search.aspose.com/) | [Free Support](https://forum.aspose.com/c/imaging) | [Temporary License](https://purchase.aspose.com/temporary-license) | [EULA](https://company.aspose.com/legal/eula)

---
Try our [free online Apps](https://products.aspose.app/imaging/family) demonstrating some of the most popular Aspose.Imaging functionality.

**Aspose.Imaging for Python via .NET** is **Another Python Imaging Library** offering advanced image processing features. You could easily create, load, manipulate, convert, compress images or photos using this API. Also **Aspose.Imaging** library supports drawing and work with graphic primitives. Image export and conversion (including uniform multi-page image processing) is the one of API core features along with image transformations (resize, crop, flip&rotate, binarization, grayscale, adjust, etc.), advanced image manipulation features (filtering, dithering, masking, deskewing) and memory optimization strategies.

**Aspose.Imaging for Python via .NET** is a flexible, stable and powerful API, capable of processing the most commonly used formats along with some special formats such as DjVu, DICOM, WebP & DNG. Moreover, it extends the native support for image formats & processing functions for .NET and .NET Core. **Aspose.Imaging** is cross-platform library, it is Windows x32/x64, Linux x64, and MacOS x64/Arm64 compatible.

> Aspose.Imaging for Python requires you to use python programming language. For Java and .NET languages, we recommend you get Aspose.Imaging for Java and Aspose.Imaging for .NET, respectively.


### Product Features

The following are Aspose.Imaging’s core features:
- Create images (raster, vector)
- Read images (raster, vector)
- Write images (raster, vector)
- **Draw lines, circles, ellipses, texts, complex paths, and images using the classes Graphics, SvgGraphics2D, EmfRecorderGraphics2D, WmfRecorderGraphics2D**
- Process images (including per-pixel modifications)
- Convert between different image formats as raster as vector
- **Support the large images with size more than 100000x100000 pixels**
- **Memory and performance management strategies**

### **Supported File Formats**
|**File format**|**Supported versions**|**Load**|**Save**|
| :- | :- | :- | :- |
|[BMP](https://docs.fileformat.com/image/bmp/)|BMP Specification v5|Yes|Yes|
|[GIF](https://docs.fileformat.com/image/gif/)|Version 89a|Yes|Yes|
|[DICOM](https://docs.fileformat.com/image/dicom/)|Version 3.0|Yes|Yes|
|[DJVU](https://docs.fileformat.com/image/djvu/)|Version 3.0|Yes| |
|[DNG](https://docs.fileformat.com/image/dng/)|Version 1.0.0.0 and later|Yes| |
|[EMF](https://docs.fileformat.com/image/emf/)|Revision 11.0|Yes|Yes|
|[JPEG](https://docs.fileformat.com/image/jpeg/)|CCITT Rec. T.81 (1992 E)|Yes|Yes|
|[JPEG2000](https://docs.fileformat.com/image/jp2/)|ITU-T Rec. T.800 (08/2002 E)|Yes|Yes|
|[ODG](https://docs.fileformat.com/image/odg/)|Version 1.2|Yes| |
|[PNG](https://docs.fileformat.com/image/png/)|Version 1.0 and later|Yes|Yes|
|[ICO](https://docs.fileformat.com/image/ico/)|Version 1.0 and later|Yes|Yes|
|[APNG](https://docs.fileformat.com/image/apng/)| |Yes|Yes|
|[PSD](https://docs.fileformat.com/image/psd/)|Adobe Photoshop 2.0 and later| |Yes|
|[DXF](https://docs.fileformat.com/cad/dxf/)|Dxf 6 and later| |Yes|
|[SVG](https://docs.fileformat.com/page-description-language/svg/)|Version 1.1|Yes|Yes|
|[TIFF](https://docs.fileformat.com/image/tiff/)|Version 6.0*|Yes|Yes|
|[BIG-TIFF](https://www.awaresystems.be/imaging/tiff/bigtiff.html)| |Yes|Yes|
|[DIB](https://docs.fileformat.com/image/dib/)|BMP Specification v5|Yes| |
|[EPS](https://docs.fileformat.com/page-description-language/eps/)| |Yes| |
|[WEBP](https://docs.fileformat.com/image/webp/)| |Yes| |
|[WMF](https://docs.fileformat.com/image/wmf/)|Revision 13.0|Yes|Yes|
|[CDR](https://docs.fileformat.com/image/cdr/)|Version X7, X6 (3-x5 not completely)|Yes| |
|[CMX](https://docs.fileformat.com/image/cmx/)|Version 2.0, 32 bit precision (16 bit precision not completely)|Yes| |
|[OTG](https://docs.fileformat.com/image/otg/)|Version 1.2|Yes| |
|[PDF](https://docs.fileformat.com/pdf/)|Portable document format| |Yes|
|[HTML5 canvas](https://docs.fileformat.com/web/html/)|Html5 canvas element| |Yes|
|[EMZ](https://docs.fileformat.com/image/emz/)|Compressed emf format|Yes|Yes|
|[WMZ](https://docs.fileformat.com/image/wmz/)|Compressed wmf format|Yes|Yes|
|[TGA](https://docs.fileformat.com/image/tga/)|Truevision TGA (TARGA)|Yes|Yes|
|[SVGZ](https://docs.fileformat.com/image/svgz/)|Compressed svg file format|Yes|Yes|

### Platform Independence

Aspose.Imaging for Python can be used to develop applications for a vast range of operating systems, such as Windows (x32/x64), Linux (x64), and MacOS (x64/arm64) where Python 3.5 or later is installed.

**The base .NET platform is .NET Core 6.0**
**Do not use System.Drawing.Common but the platform-independent Aspose.Drawing.**

### Get Started

Ready to give Aspose.Imaging for Python a try?

Simply run ```pip install aspose-imaging-python-net``` from the console to fetch the package. If you already have Aspose.Imaging for Python and want to upgrade the version, please run ```pip install --upgrade aspose-imaging-python-net``` to get the latest version.

You can run the following snippets in your environment to see how Aspose.Imaging works, or check out the [GitHub Repository](https://github.com/aspose-imaging/Aspose.Imaging-for-Python-Net) or [Aspose.Imaging for Python Documentation](https://docs.aspose.com/imaging/python-net/) for other common use cases.

### Create a PNG image from scratch in Python
``` python

from aspose.imaging import Color, Graphics, Pen
from aspose.imaging.fileformats.png import PngImage

# create an empty PNG image
with PngImage(100, 100) as png:
	# create a canvas for drawing over the image
	g = Graphics(png)
	# start a queue of operations which will be processed together as a batch
	g.begin_update()
	# fill the background with blue color
	g.clear(Color.blue)
	# draw a line with light green pen with width == 2.0
	g.draw_line(Pen(Color.light_green, 2.0), 0, 10, 100, 90)
	# execute all drawing operations as one
	g.end_update()
	# save image in a file
	png.save("output.png")
	
```

### Create and manipulate with PNG image
``` python

from aspose.imaging import Image, ResizeType, Graphics, Color, Pen, Rectangle
from aspose.imaging.fileformats.png import PngImage
from aspose.imaging.imageoptions import PngOptions
from aspose.imaging.sources import FileCreateSource
from aspose.pycore import as_of
import os

data_dir = "~/data-dir"
width = 500
height = 300
path = os.path.join(data_dir, "result.png")
with PngOptions() as options:
	options.source = FileCreateSource(path, False)
	with as_of(Image.create(options, width, height), PngImage) as image:
		graphic = Graphics(image)
		graphic.clear(Color.green)
		graphic.draw_line(Pen(Color.blue), 9, 9, 90, 90)
		new_width = 400
		image.resize_width_proportionally(new_width, ResizeType.LANCZOS_RESAMPLE)
		area = Rectangle(10, 10, 200, 200)
		image.crop(area)
		image.save() # save into the file set to options.source
```

### Load, resize and save a raster image
``` python

from aspose.imaging import Image

with Image.load("any-picture.tiff") as image:
	image.resize(image.width // 2, image.height // 2)
	image.save("output.jpeg")
```


### Load a raster image (PNG) and convert it into jpeg
``` python

from aspose.imaging import Image, FileFormat
from aspose.imaging.fileformats.png import PngImage
import aspose.pycore as pycore

with Image.load("any-picture.png") as image:
	print("format: ", FileFormat(image.file_format).name)
	# for accessing to a PngImage properties and methods need to cast it
	png_image = pycore.as_of(image, PngImage)
	print("xmp_data", png_image.xmp_data)
	
	image.save("output.jpeg")
    
```

### Load jpeg and export it into the different formats
``` python

from aspose.imaging import Image
from aspose.imaging.fileformats.pdf import PdfDocumentInfo
from aspose.imaging.fileformats.tiff.enums import *
from aspose.imaging.imageoptions import *
import os

data_dir = "data-dir"
with Image.load(os.path.join(data_dir, "template.jpg")) as img:
	# convert to webp
	img.save(os.path.join(data_dir, "output.webp"), WebPOptions())
	# convert to psd
	img.save(os.path.join(data_dir, "output.psd "), PsdOptions())
	# convert to tiff
	img.save(os.path.join(data_dir, "output.tiff"), TiffOptions(TiffExpectedFormat.DEFAULT))
	# convert to pdf
	export_options = PdfOptions()
	export_options.pdf_document_info = PdfDocumentInfo()
	img.save(os.path.join(data_dir, "output.pdf"), export_options)

```

### Crop image
``` python

from aspose.pycore import as_of
from aspose.imaging import Image, Rectangle, RasterImage
import os

data_dir = "data-dir"
with Image.load(os.path.join(data_dir, "template.jpg")) as img:
	# casting to the RasterImage class
	raster_image = as_of(img, RasterImage)
	# crop
	area = Rectangle(10, 10, img.width - 20, img.height - 20)
	raster_image.crop(area)
	image.save("cropped.jpg")
```

### Merge images into one (collage)
``` python
from aspose.imaging import Image, Graphics, Color, RectangleF
from aspose.imaging.fileformats.png import PngColorType
from aspose.imaging.imageoptions import PngOptions
from aspose.imaging.sources import FileCreateSource
import os

data_dir = "data-dir"
images = []
# files for merging
files = ["template.png", "template.jpg"] # could be more file here
max_width = 0
max_height = 0
total_width = 0
total_height = 0
for file_name in files:
	image = Image.load(os.path.join(data_dir, file_name))
	total_width += image.width
	if image.width > max_width:
		max_width = image.width
	total_height += image.height
	if image.height > max_height:
		max_height = image.height
	images.append(image)


def merge_images(direction, out_file_name):
	target_width = 0
	target_height = 0
	if direction == 0:
		target_width = total_width
		target_height = max_height
	else:
		target_width = max_width
		target_height = total_height

	output_path = os.path.join(data_dir, out_file_name + ".png")
	with PngOptions() as png_options:
		png_options.color_type = PngColorType.TRUECOLOR_WITH_ALPHA
		
		with open(out_file_name, "wb") as stream:
			png_options.source = FileCreateSource(output_path, False)
			with Image.create(png_options, target_width, target_height) as image:
				image.background_color = Color.white
				graphics = Graphics(image)
				x = 0
				y = 0
				graphics.begin_update()
				for frame in images:
					print("x", x, "y", y)
					graphics.draw_image(frame, RectangleF(x, y, frame.width, frame.height))
					if direction == 0:
						x += frame.width
					if direction == 1:
						y += frame.height
						
				graphics.end_update()
				image.save(output_path)


# run 
merge_images(0, "collage_horizontal")
merge_images(1, "collage_vertical")

for image in images:
	# to dispose the image we call __exit__()
	with image as _:
		pass

```

---
[Product Page](https://products.aspose.com/imaging/python-net/) | [Documentation](https://docs.aspose.com/imaging/python-net/) | [Demos](https://products.aspose.app/imaging/family) | [Blog](https://blog.aspose.com/categories/aspose.imaging-product-family/) | [API Reference](https://reference.aspose.com/imaging/python-net/) | [Search](https://search.aspose.com/) | [Free Support](https://forum.aspose.com/c/imaging) | [Temporary License](https://purchase.aspose.com/temporary-license) | [EULA](https://company.aspose.com/legal/eula)



            

Raw data

            {
    "_id": null,
    "home_page": "https://products.aspose.com/imaging/python-net",
    "name": "aspose-imaging-python-net",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.5",
    "maintainer_email": null,
    "keywords": "image, convert, manipulate, drawing, load, update, save, merge, crop, resize, flip, rotate, canvas, graphics, jpeg, png, gif, svg, tiff, bigtiff, bmp, dicom, eps, tga, webp, cdr, cmx, djvu, dng, tga, html5, dxf, raster, metafiles, wmf, emf, fodg, ico, pdf, svgz, emz, wmz",
    "author": "Aspose",
    "author_email": null,
    "download_url": null,
    "platform": "macos_x86_64",
    "description": "## Imaging Manipulation API\n\n[Product Page](https://products.aspose.com/imaging/python-net/) | [Documentation](https://docs.aspose.com/imaging/python-net/) | [Demos](https://products.aspose.app/imaging/family) | [Blog](https://blog.aspose.com/categories/aspose.imaging-product-family/) | [API Reference](https://reference.aspose.com/imaging/python-net/) | [Search](https://search.aspose.com/) | [Free Support](https://forum.aspose.com/c/imaging) | [Temporary License](https://purchase.aspose.com/temporary-license) | [EULA](https://company.aspose.com/legal/eula)\n\n---\nTry our [free online Apps](https://products.aspose.app/imaging/family) demonstrating some of the most popular Aspose.Imaging functionality.\n\n**Aspose.Imaging for Python via .NET** is **Another Python Imaging Library** offering advanced image processing features. You could easily create, load, manipulate, convert, compress images or photos using this API. Also **Aspose.Imaging** library supports drawing and work with graphic primitives. Image export and conversion (including uniform multi-page image processing) is the one of API core features along with image transformations (resize, crop, flip&rotate, binarization, grayscale, adjust, etc.), advanced image manipulation features (filtering, dithering, masking, deskewing) and memory optimization strategies.\n\n**Aspose.Imaging for Python via .NET** is a flexible, stable and powerful API, capable of processing the most commonly used formats along with some special formats such as DjVu, DICOM, WebP & DNG. Moreover, it extends the native support for image formats & processing functions for .NET and .NET Core. **Aspose.Imaging** is cross-platform library, it is Windows x32/x64, Linux x64, and MacOS x64/Arm64 compatible.\n\n> Aspose.Imaging for Python requires you to use python programming language. For Java and .NET languages, we recommend you get Aspose.Imaging for Java and Aspose.Imaging for .NET, respectively.\n\n\n### Product Features\n\nThe following are Aspose.Imaging\u2019s core features:\n- Create images (raster, vector)\n- Read images (raster, vector)\n- Write images (raster, vector)\n- **Draw lines, circles, ellipses, texts, complex paths, and images using the classes Graphics, SvgGraphics2D, EmfRecorderGraphics2D, WmfRecorderGraphics2D**\n- Process images (including per-pixel modifications)\n- Convert between different image formats as raster as vector\n- **Support the large images with size more than 100000x100000 pixels**\n- **Memory and performance management strategies**\n\n### **Supported File Formats**\n|**File format**|**Supported versions**|**Load**|**Save**|\n| :- | :- | :- | :- |\n|[BMP](https://docs.fileformat.com/image/bmp/)|BMP Specification v5|Yes|Yes|\n|[GIF](https://docs.fileformat.com/image/gif/)|Version 89a|Yes|Yes|\n|[DICOM](https://docs.fileformat.com/image/dicom/)|Version 3.0|Yes|Yes|\n|[DJVU](https://docs.fileformat.com/image/djvu/)|Version 3.0|Yes|\u00a0|\n|[DNG](https://docs.fileformat.com/image/dng/)|Version 1.0.0.0 and later|Yes|\u00a0|\n|[EMF](https://docs.fileformat.com/image/emf/)|Revision 11.0|Yes|Yes|\n|[JPEG](https://docs.fileformat.com/image/jpeg/)|CCITT Rec. T.81 (1992 E)|Yes|Yes|\n|[JPEG2000](https://docs.fileformat.com/image/jp2/)|ITU-T Rec. T.800 (08/2002 E)|Yes|Yes|\n|[ODG](https://docs.fileformat.com/image/odg/)|Version 1.2|Yes|\u00a0|\n|[PNG](https://docs.fileformat.com/image/png/)|Version 1.0 and later|Yes|Yes|\n|[ICO](https://docs.fileformat.com/image/ico/)|Version 1.0 and later|Yes|Yes|\n|[APNG](https://docs.fileformat.com/image/apng/)|\u00a0|Yes|Yes|\n|[PSD](https://docs.fileformat.com/image/psd/)|Adobe Photoshop 2.0 and later|\u00a0|Yes|\n|[DXF](https://docs.fileformat.com/cad/dxf/)|Dxf 6 and later|\u00a0|Yes|\n|[SVG](https://docs.fileformat.com/page-description-language/svg/)|Version 1.1|Yes|Yes|\n|[TIFF](https://docs.fileformat.com/image/tiff/)|Version 6.0*|Yes|Yes|\n|[BIG-TIFF](https://www.awaresystems.be/imaging/tiff/bigtiff.html)| |Yes|Yes|\n|[DIB](https://docs.fileformat.com/image/dib/)|BMP Specification v5|Yes|\u00a0|\n|[EPS](https://docs.fileformat.com/page-description-language/eps/)|\u00a0|Yes|\u00a0|\n|[WEBP](https://docs.fileformat.com/image/webp/)|\u00a0|Yes|\u00a0|\n|[WMF](https://docs.fileformat.com/image/wmf/)|Revision 13.0|Yes|Yes|\n|[CDR](https://docs.fileformat.com/image/cdr/)|Version X7, X6 (3-x5 not completely)|Yes|\u00a0|\n|[CMX](https://docs.fileformat.com/image/cmx/)|Version 2.0, 32 bit precision (16 bit precision not completely)|Yes|\u00a0|\n|[OTG](https://docs.fileformat.com/image/otg/)|Version 1.2|Yes|\u00a0|\n|[PDF](https://docs.fileformat.com/pdf/)|Portable document format|\u00a0|Yes|\n|[HTML5 canvas](https://docs.fileformat.com/web/html/)|Html5 canvas element|\u00a0|Yes|\n|[EMZ](https://docs.fileformat.com/image/emz/)|Compressed emf format|Yes|Yes|\n|[WMZ](https://docs.fileformat.com/image/wmz/)|Compressed wmf format|Yes|Yes|\n|[TGA](https://docs.fileformat.com/image/tga/)|Truevision TGA (TARGA)|Yes|Yes|\n|[SVGZ](https://docs.fileformat.com/image/svgz/)|Compressed svg file format|Yes|Yes|\n\n### Platform Independence\n\nAspose.Imaging for Python can be used to develop applications for a vast range of operating systems, such as Windows (x32/x64), Linux (x64), and MacOS (x64/arm64) where Python 3.5 or later is installed.\n\n**The base .NET platform is .NET Core 6.0**\n**Do not use System.Drawing.Common but the platform-independent Aspose.Drawing.**\n\n### Get Started\n\nReady to give Aspose.Imaging for Python a try?\n\nSimply run ```pip install aspose-imaging-python-net``` from the console to fetch the package. If you already have Aspose.Imaging for Python and want to upgrade the version, please run ```pip install --upgrade aspose-imaging-python-net``` to get the latest version.\n\nYou can run the following snippets in your environment to see how Aspose.Imaging works, or check out the [GitHub Repository](https://github.com/aspose-imaging/Aspose.Imaging-for-Python-Net) or [Aspose.Imaging for Python Documentation](https://docs.aspose.com/imaging/python-net/) for other common use cases.\n\n### Create a PNG image from scratch in Python\n``` python\n\nfrom aspose.imaging import Color, Graphics, Pen\nfrom aspose.imaging.fileformats.png import PngImage\n\n# create an empty PNG image\nwith PngImage(100, 100) as png:\n\t# create a canvas for drawing over the image\n\tg = Graphics(png)\n\t# start a queue of operations which will be processed together as a batch\n\tg.begin_update()\n\t# fill the background with blue color\n\tg.clear(Color.blue)\n\t# draw a line with light green pen with width == 2.0\n\tg.draw_line(Pen(Color.light_green, 2.0), 0, 10, 100, 90)\n\t# execute all drawing operations as one\n\tg.end_update()\n\t# save image in a file\n\tpng.save(\"output.png\")\n\t\n```\n\n### Create and manipulate with PNG image\n``` python\n\nfrom aspose.imaging import Image, ResizeType, Graphics, Color, Pen, Rectangle\nfrom aspose.imaging.fileformats.png import PngImage\nfrom aspose.imaging.imageoptions import PngOptions\nfrom aspose.imaging.sources import FileCreateSource\nfrom aspose.pycore import as_of\nimport os\n\ndata_dir = \"~/data-dir\"\nwidth = 500\nheight = 300\npath = os.path.join(data_dir, \"result.png\")\nwith PngOptions() as options:\n\toptions.source = FileCreateSource(path, False)\n\twith as_of(Image.create(options, width, height), PngImage) as image:\n\t\tgraphic = Graphics(image)\n\t\tgraphic.clear(Color.green)\n\t\tgraphic.draw_line(Pen(Color.blue), 9, 9, 90, 90)\n\t\tnew_width = 400\n\t\timage.resize_width_proportionally(new_width, ResizeType.LANCZOS_RESAMPLE)\n\t\tarea = Rectangle(10, 10, 200, 200)\n\t\timage.crop(area)\n\t\timage.save() # save into the file set to options.source\n```\n\n### Load, resize and save a raster image\n``` python\n\nfrom aspose.imaging import Image\n\nwith Image.load(\"any-picture.tiff\") as image:\n\timage.resize(image.width // 2, image.height // 2)\n\timage.save(\"output.jpeg\")\n```\n\n\n### Load a raster image (PNG) and convert it into jpeg\n``` python\n\nfrom aspose.imaging import Image, FileFormat\nfrom aspose.imaging.fileformats.png import PngImage\nimport aspose.pycore as pycore\n\nwith Image.load(\"any-picture.png\") as image:\n\tprint(\"format: \", FileFormat(image.file_format).name)\n\t# for accessing to a PngImage properties and methods need to cast it\n\tpng_image = pycore.as_of(image, PngImage)\n\tprint(\"xmp_data\", png_image.xmp_data)\n\t\n\timage.save(\"output.jpeg\")\n    \n```\n\n### Load jpeg and export it into the different formats\n``` python\n\nfrom aspose.imaging import Image\nfrom aspose.imaging.fileformats.pdf import PdfDocumentInfo\nfrom aspose.imaging.fileformats.tiff.enums import *\nfrom aspose.imaging.imageoptions import *\nimport os\n\ndata_dir = \"data-dir\"\nwith Image.load(os.path.join(data_dir, \"template.jpg\")) as img:\n\t# convert to webp\n\timg.save(os.path.join(data_dir, \"output.webp\"), WebPOptions())\n\t# convert to psd\n\timg.save(os.path.join(data_dir, \"output.psd \"), PsdOptions())\n\t# convert to tiff\n\timg.save(os.path.join(data_dir, \"output.tiff\"), TiffOptions(TiffExpectedFormat.DEFAULT))\n\t# convert to pdf\n\texport_options = PdfOptions()\n\texport_options.pdf_document_info = PdfDocumentInfo()\n\timg.save(os.path.join(data_dir, \"output.pdf\"), export_options)\n\n```\n\n### Crop image\n``` python\n\nfrom aspose.pycore import as_of\nfrom aspose.imaging import Image, Rectangle, RasterImage\nimport os\n\ndata_dir = \"data-dir\"\nwith Image.load(os.path.join(data_dir, \"template.jpg\")) as img:\n\t# casting to the RasterImage class\n\traster_image = as_of(img, RasterImage)\n\t# crop\n\tarea = Rectangle(10, 10, img.width - 20, img.height - 20)\n\traster_image.crop(area)\n\timage.save(\"cropped.jpg\")\n```\n\n### Merge images into one (collage)\n``` python\nfrom aspose.imaging import Image, Graphics, Color, RectangleF\nfrom aspose.imaging.fileformats.png import PngColorType\nfrom aspose.imaging.imageoptions import PngOptions\nfrom aspose.imaging.sources import FileCreateSource\nimport os\n\ndata_dir = \"data-dir\"\nimages = []\n# files for merging\nfiles = [\"template.png\", \"template.jpg\"] # could be more file here\nmax_width = 0\nmax_height = 0\ntotal_width = 0\ntotal_height = 0\nfor file_name in files:\n\timage = Image.load(os.path.join(data_dir, file_name))\n\ttotal_width += image.width\n\tif image.width > max_width:\n\t\tmax_width = image.width\n\ttotal_height += image.height\n\tif image.height > max_height:\n\t\tmax_height = image.height\n\timages.append(image)\n\n\ndef merge_images(direction, out_file_name):\n\ttarget_width = 0\n\ttarget_height = 0\n\tif direction == 0:\n\t\ttarget_width = total_width\n\t\ttarget_height = max_height\n\telse:\n\t\ttarget_width = max_width\n\t\ttarget_height = total_height\n\n\toutput_path = os.path.join(data_dir, out_file_name + \".png\")\n\twith PngOptions() as png_options:\n\t\tpng_options.color_type = PngColorType.TRUECOLOR_WITH_ALPHA\n\t\t\n\t\twith open(out_file_name, \"wb\") as stream:\n\t\t\tpng_options.source = FileCreateSource(output_path, False)\n\t\t\twith Image.create(png_options, target_width, target_height) as image:\n\t\t\t\timage.background_color = Color.white\n\t\t\t\tgraphics = Graphics(image)\n\t\t\t\tx = 0\n\t\t\t\ty = 0\n\t\t\t\tgraphics.begin_update()\n\t\t\t\tfor frame in images:\n\t\t\t\t\tprint(\"x\", x, \"y\", y)\n\t\t\t\t\tgraphics.draw_image(frame, RectangleF(x, y, frame.width, frame.height))\n\t\t\t\t\tif direction == 0:\n\t\t\t\t\t\tx += frame.width\n\t\t\t\t\tif direction == 1:\n\t\t\t\t\t\ty += frame.height\n\t\t\t\t\t\t\n\t\t\t\tgraphics.end_update()\n\t\t\t\timage.save(output_path)\n\n\n# run \nmerge_images(0, \"collage_horizontal\")\nmerge_images(1, \"collage_vertical\")\n\nfor image in images:\n\t# to dispose the image we call __exit__()\n\twith image as _:\n\t\tpass\n\n```\n\n---\n[Product Page](https://products.aspose.com/imaging/python-net/) | [Documentation](https://docs.aspose.com/imaging/python-net/) | [Demos](https://products.aspose.app/imaging/family) | [Blog](https://blog.aspose.com/categories/aspose.imaging-product-family/) | [API Reference](https://reference.aspose.com/imaging/python-net/) | [Search](https://search.aspose.com/) | [Free Support](https://forum.aspose.com/c/imaging) | [Temporary License](https://purchase.aspose.com/temporary-license) | [EULA](https://company.aspose.com/legal/eula)\n\n\n",
    "bugtrack_url": null,
    "license": "Free To Use But Restricted,Other/Proprietary License",
    "summary": "Aspose.Imaging for Python via .NET is Another Python Imaging Library. It allows developers to easily create, load, manipulate, convert, compress images or photos using this API.",
    "version": "24.11.0",
    "project_urls": {
        "API Reference": "https://reference.aspose.com/imaging/python-net/",
        "Blog": "https://blog.aspose.com/categories/aspose.imaging-product-family/",
        "Demos": "https://products.aspose.app/imaging/family",
        "Docs": "https://docs.aspose.com/imaging/python-net/",
        "Examples": "https://github.com/aspose-imaging/Aspose.Imaging-for-Python-NET",
        "Free Support": "https://forum.aspose.com/c/imaging",
        "Homepage": "https://products.aspose.com/imaging/python-net",
        "Release Notes": "https://releases.aspose.com/imaging/python-net/release-notes/2024/aspose-imaging-for-python-net-24-11-release-notes/",
        "Temporary License": "https://purchase.aspose.com/temporary-license"
    },
    "split_keywords": [
        "image",
        " convert",
        " manipulate",
        " drawing",
        " load",
        " update",
        " save",
        " merge",
        " crop",
        " resize",
        " flip",
        " rotate",
        " canvas",
        " graphics",
        " jpeg",
        " png",
        " gif",
        " svg",
        " tiff",
        " bigtiff",
        " bmp",
        " dicom",
        " eps",
        " tga",
        " webp",
        " cdr",
        " cmx",
        " djvu",
        " dng",
        " tga",
        " html5",
        " dxf",
        " raster",
        " metafiles",
        " wmf",
        " emf",
        " fodg",
        " ico",
        " pdf",
        " svgz",
        " emz",
        " wmz"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ad625240e0ea9ccdecf03ea3bb8477eedacee9a3ff5f444b033302e76b2e84e3",
                "md5": "205406b0bcfabad78b8526fe11a87eee",
                "sha256": "27fd5522bde042390b15e1a01614c7443840dfd436961c5a24f2e136e6504cc5"
            },
            "downloads": -1,
            "filename": "aspose_imaging_python_net-24.11.0-py3-none-macosx_10_14_x86_64.whl",
            "has_sig": false,
            "md5_digest": "205406b0bcfabad78b8526fe11a87eee",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.5",
            "size": 87062529,
            "upload_time": "2024-11-01T17:00:10",
            "upload_time_iso_8601": "2024-11-01T17:00:10.232823Z",
            "url": "https://files.pythonhosted.org/packages/ad/62/5240e0ea9ccdecf03ea3bb8477eedacee9a3ff5f444b033302e76b2e84e3/aspose_imaging_python_net-24.11.0-py3-none-macosx_10_14_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6d38b187876eccd1043c7c9aa6be57eddc4c20d52aab9ea2661a280b8bc926b4",
                "md5": "70d0afd6dc178b222e462f0ed3fcd8e2",
                "sha256": "5eebd8133b79c5867191b8777536f92724a0a74d5d68d07a0e220d0efa5a1ace"
            },
            "downloads": -1,
            "filename": "aspose_imaging_python_net-24.11.0-py3-none-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "70d0afd6dc178b222e462f0ed3fcd8e2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.5",
            "size": 62656993,
            "upload_time": "2024-11-01T17:03:01",
            "upload_time_iso_8601": "2024-11-01T17:03:01.912157Z",
            "url": "https://files.pythonhosted.org/packages/6d/38/b187876eccd1043c7c9aa6be57eddc4c20d52aab9ea2661a280b8bc926b4/aspose_imaging_python_net-24.11.0-py3-none-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b8dc585230dde185167384ddf2e7cd47073f3ef3ad005b4b7e2f40e09307ccaf",
                "md5": "354cb034cf7920abd8e16c855141cd46",
                "sha256": "8dc7ec053152a8dffde10b4b94635504a2d763580198942d5c51a6e50c702c23"
            },
            "downloads": -1,
            "filename": "aspose_imaging_python_net-24.11.0-py3-none-win32.whl",
            "has_sig": false,
            "md5_digest": "354cb034cf7920abd8e16c855141cd46",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.5",
            "size": 59083485,
            "upload_time": "2024-11-01T17:05:36",
            "upload_time_iso_8601": "2024-11-01T17:05:36.862243Z",
            "url": "https://files.pythonhosted.org/packages/b8/dc/585230dde185167384ddf2e7cd47073f3ef3ad005b4b7e2f40e09307ccaf/aspose_imaging_python_net-24.11.0-py3-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "596914e5491d9d636f5158df20b09e00ff86b513ecc7f4accde941553faf19cc",
                "md5": "abe97c105868c5a646059d71431be710",
                "sha256": "9df7c1b8e4e85e3c09fcff06f6ebf3c701c4b56c9e96d036d8d4ec1a7027304a"
            },
            "downloads": -1,
            "filename": "aspose_imaging_python_net-24.11.0-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "abe97c105868c5a646059d71431be710",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.5",
            "size": 68393720,
            "upload_time": "2024-11-01T17:08:33",
            "upload_time_iso_8601": "2024-11-01T17:08:33.934770Z",
            "url": "https://files.pythonhosted.org/packages/59/69/14e5491d9d636f5158df20b09e00ff86b513ecc7f4accde941553faf19cc/aspose_imaging_python_net-24.11.0-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-01 17:00:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "aspose-imaging",
    "github_project": "Aspose.Imaging-for-Python-NET",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "aspose-imaging-python-net"
}
        
Elapsed time: 0.38638s