html2image
Package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files.
Decision gist · record as of 2026-08-14
Yes. Low install friction, permissive MIT license, active maintenance, no known vulnerabilities, and broad Python version support (3.6–3.13). Install only if you have a compatible browser (Chrome, Chromium, or Edge) available on your system; otherwise, the package will fail at runtime. Suitable for production use in testing, documentation, and content pipelines.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Chrome, Chromium, or Microsoft Edge installed and accessible on the system PATH or via browser_executable parameter.
- Low friction: only two runtime dependencies (requests, websocket-client).
- Active maintenance with recent commits; last release 2025-05-16.
License · maintenance · safety
permissive license (permissive) — MIT License permits commercial and private use, modification, and distribution with minimal restrictions. Include a copy of the license and copyright notice in distributions.
last release 2025-05-16 (455 days) · last repo commit 2026-03-22 · 457 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 432,002 downloads/mo, #6,711 on PyPI
Alternatives
Verify before relying
pip install html2image
from html2image import Html2Image
hti = Html2Image()
hti.screenshot(url='https://www.python.org', save_as='page.png')
# or from HTML string:
hti.screenshot(html_str='<h1>Hello</h1>', css_str='body {background: blue;}', save_as='output.png')- Performance characteristics when rendering complex or large HTML documents.
- Memory usage and resource overhead for batch screenshot operations.
- Compatibility with specific browser versions or rendering edge cases.
What it is and what it does
html2image wraps the headless rendering mode of Chrome, Chromium, or Edge to convert HTML, CSS, and web URLs into image files. It abstracts away the complexity of invoking browser command-line interfaces, letting you generate screenshots from HTML strings, local files, or live URLs with a simple Python API. The package handles temporary file management, supports batch operations, and allows customization of output size, format, and browser flags.
The main use case is automated screenshot generation for testing, documentation, or content creation. It depends on requests and websocket-client for network operations, and requires a compatible browser binary installed on the host system. The package is actively maintained, supports Python 3.6 through 3.13, and has no known security vulnerabilities.
Use it for
- Generate screenshots of live websites for automated testing or visual regression detection.
- Convert HTML email templates or reports to images for archival or distribution.
- Create PNG thumbnails from HTML/CSS designs without manual browser interaction.
- Batch-process multiple HTML files or URLs into images with consistent sizing and styling.
- Render SVG and other vector formats to raster images via browser headless mode.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Low install friction, permissive MIT license, active maintenance, no known vulnerabilities, and broad Python version support (3.6–3.13). Install only if you have a compatible browser (Chrome, Chromium, or Edge) available on your system; otherwise, the package will fail at runtime. Suitable for production use in testing, documentation, and content pipelines.
Install
html2image on PyPI
Before you install
Low friction: only two runtime dependencies (requests, websocket-client). Active maintenance with recent commits; last release 2025-05-16. Requires an external browser binary (Chrome, Chromium, or Edge) installed on the system to function.
Requires Chrome, Chromium, or Microsoft Edge installed and accessible on the system PATH or via browser_executable parameter.
License in practice
MIT License permits commercial and private use, modification, and distribution with minimal restrictions. Include a copy of the license and copyright notice in distributions.
Quickstart
pip install html2image
from html2image import Html2Image
hti = Html2Image()
hti.screenshot(url='https://www.python.org', save_as='page.png')
# or from HTML string:
hti.screenshot(html_str='<h1>Hello</h1>', css_str='body {background: blue;}', save_as='output.png')
Verify before relying
- Performance characteristics when rendering complex or large HTML documents.
- Memory usage and resource overhead for batch screenshot operations.
- Compatibility with specific browser versions or rendering edge cases.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesrequestswebsocket-client |
| Maintenance | Actively maintained 455 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 432,002 / month, #6,711 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Multimedia :: Graphics :: Graphics ConversionTopic :: Software Development :: User InterfacesTopic :: Utilities |
Evidence: html2image-2.0.7-py3-none-any.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 › “html to image screenshot”
- html2imageGenerates PNG/image files from HTML, CSS, and URLs by wrapping…
- screenshotoneA Python SDK for the ScreenshotOne.com API that takes screenshots of…
- nokapnokap captures screenshots and PDFs from web pages or HTML strings…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also nokap · screenshotone · pyppeteer · airium · imgkit · mycdp · Selenium-Screenshot · browserforge · weasyprint · kaleido