aggdraw
High quality drawing interface for PIL.
Decision gist · record as of 2026-08-14
Yes, if you need anti-aliased 2D drawing and have a C++ compiler available. Pre-built wheels eliminate compilation friction on most platforms. Active maintenance, no known vulnerabilities, and permissive licensing make it a safe choice. Not necessary if basic drawing suffices or if you cannot compile C extensions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a C++ compiler and Python ≥3.11.
- Optional: freetype2 library for TrueType/OpenType font support (requires freetype-config on PATH during build).
- Medium install friction due to C++ compilation requirement.
License · maintenance · safety
Python (MIT style) (permissive) — Licensed under a permissive MIT-style license. No restrictions on commercial or proprietary use; you may modify and distribute freely provided copyright notices are retained.
last release 2025-12-03 (254 days) · last repo commit 2026-08-10 · 107 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 187,383 downloads/mo, #9,967 on PyPI
Alternatives
Verify before relying
pip install aggdraw
import aggdraw
draw = aggdraw.Draw(image)
draw.line((x1, y1, x2, y2), fill_color)
image.save('output.png')- Whether free-threading support (mentioned in description) is production-ready or still experimental given the 'Unstable' classifier.
- Current state of freetype2 integration and whether it is commonly needed for typical use cases.
- Specific image format compatibility and whether aggdraw works with formats beyond those supported by the underlying image library.
What it is and what it does
aggdraw is a Python extension that wraps the Anti-Grain Geometry (AGG) library to provide high-quality 2D drawing. It implements the WCK 2D drawing interface, enabling anti-aliased and alpha-composited graphics rendering. The package bundles AGG sources and compiles them as a C++ extension, so installation requires a C++ compiler on most platforms, though pre-built wheels are available for common Python versions and architectures.
The library is designed for developers who need superior drawing quality—particularly for anti-aliased lines, shapes, and compositing operations. It maintains compatibility with standard image workflows, making it suitable for graphics-intensive applications. The project is actively maintained and supports modern Python versions (3.11+), with experimental free-threading support available.
Use it for
- Render anti-aliased vector graphics and shapes for scientific visualization or data plots.
- Create high-quality composite graphics with alpha blending for image processing pipelines.
- Draw text and glyphs with TrueType font support (when freetype2 is available) for label and annotation tasks.
- Build custom image generation tools that require superior rendering quality.
- Implement 2D graphics in geospatial or remote-sensing applications (package is maintained by pytroll community).
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need anti-aliased 2D drawing and have a C++ compiler available.
Pre-built wheels eliminate compilation friction on most platforms. Active maintenance, no known vulnerabilities, and permissive licensing make it a safe choice. Not necessary if basic drawing suffices or if you cannot compile C extensions.
Install
aggdraw on PyPI
Before you install
Medium install friction due to C++ compilation requirement. Pre-built wheels are available for Python 3.11–3.14 across macOS, Linux, and Windows architectures, reducing build burden on most platforms. Active maintenance with recent releases.
Requires a C++ compiler and Python ≥3.11. Optional: freetype2 library for TrueType/OpenType font support (requires freetype-config on PATH during build).
License in practice
Licensed under a permissive MIT-style license. No restrictions on commercial or proprietary use; you may modify and distribute freely provided copyright notices are retained.
Quickstart
pip install aggdraw
import aggdraw
draw = aggdraw.Draw(image)
draw.line((x1, y1, x2, y2), fill_color)
image.save('output.png')
Verify before relying
- Whether free-threading support (mentioned in description) is production-ready or still experimental given the 'Unstable' classifier.
- Current state of freetype2 integration and whether it is commonly needed for typical use cases.
- Specific image format compatibility and whether aggdraw works with formats beyond those supported by the underlying image library.
Package facts
| License | Python (MIT style) permissive |
| Python support | Supports the current Python release >=3.11 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 254 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 187,383 / month, #9,967 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaProgramming Language :: Python :: Free Threading :: 1 - UnstableTopic :: Multimedia :: Graphics |
Evidence: aggdraw-1.4.1-cp311-cp311-macosx_14_0_arm64.whl; aggdraw-1.4.1-cp311-cp311-macosx_14_0_x86_64.whl; aggdraw-1.4.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; aggdraw-1.4.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; aggdraw-1.4.1-cp311-cp311-win_amd64.whl; aggdraw-1.4.1-cp311-cp311-win_arm64.whl; aggdraw-1.4.1-cp312-cp312-macosx_14_0_arm64.whl; aggdraw-1.4.1-cp312-cp312-macosx_14_0_x86_64.whl; aggdraw-1.4.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; aggdraw-1.4.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; aggdraw-1.4.1-cp312-cp312-win_amd64.whl; aggdraw-1.4.1-cp312-cp312-win_arm64.whl; aggdraw-1.4.1-cp313-cp313-macosx_14_0_arm64.whl; aggdraw-1.4.1-cp313-cp313-macosx_14_0_x86_64.whl; aggdraw-1.4.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; aggdraw-1.4.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; aggdraw-1.4.1-cp313-cp313-win_amd64.whl; aggdraw-1.4.1-cp313-cp313-win_arm64.whl; aggdraw-1.4.1-cp314-cp314-macosx_14_0_arm64.whl; aggdraw-1.4.1-cp314-cp314-macosx_14_0_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “image drawing anti-aliasing”
- aggdrawaggdraw provides high-quality 2D drawing for images using the…
- resize-rightResizes images or tensors in NumPy or PyTorch with differentiable…
- pixelmatchCompares two images pixel-by-pixel to detect differences, with…
Give your agent the search over MCP, or paste the wish link into any chat.
More Graphics packages
Pillow adds image processing capabilities to Python, providing file format support, efficient pixel data handling, and image manipulation operations.
Install it if you need to work with images in Python—it is the de facto standard for this task.
fonttools manipulates font files in multiple formats (TrueType, OpenType, AFM, Type 1, Mac-specific) and includes TTX, a tool to convert fonts to and from XML text format.
Install it if you need to read, write, or manipulate fonts programmatically or via the TTX command-line tool.
Enables matplotlib figures to display inline directly within Jupyter notebooks and IPython environments instead of in separate windows.
PyMuPDF extracts, renders, converts, and manipulates PDF and other document formats (XPS, EPUB, images, Office files via Pro) with high performance, providing text, tables, images, and metadata with precise layout information.
The AGPL license requires careful review if you are building proprietary software—commercial licensing is available from Artifex.
pypdfium2 is a Python binding to PDFium that enables PDF rendering, inspection, manipulation, and creation through a ctypes interface to Google's PDFium library.
Install it if you need PDF rendering, inspection, or manipulation in Python; the medium install friction is offset by comprehensive platform support.
Altair is a declarative Python library for creating interactive statistical visualizations by writing simple, readable code that compiles to Vega-Lite specifications.
See also schemdraw · svglib · drawsvg · epaper-dithering · affine · moderngl · vispy · svgwrite · imgviz · pictex