Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsFor a PHP app that needs to turn a live URL into an image, start with Spatie Browsershot if you can deploy Node.js, Puppeteer and headless Chrome alongside PHP. Choose chrome-php/chrome when you want to control Chrome more directly from PHP. For Laravel 12+ on PHP 8.4+, Spatie Laravel Screenshot provides a Laravel-specific driver interface. If you do not want to manage browser infrastructure, ScreenshotNeo is a hosted alternative.
All three PHP options ultimately depend on a browser to render a page. The practical choice is therefore about PHP and framework compatibility, the browser runtime you can operate, and the capture controls your use case needs—not a proven speed or image-quality ranking. The compatibility facts below reflect package documentation and registry information checked on October 3, 2026; recheck them against the versions you plan to install.
Which PHP URL-to-image package should you choose?
| Option | Documented requirements or runtime | Choose it when |
|---|---|---|
| Spatie Browsershot | Packagist listed v5.4.0, published May 26, 2026, with PHP ^8.2. Uses Puppeteer and headless Chrome. | You want a concise fluent interface for URL-to-image or PDF work and can deploy the browser stack. |
| chrome-php/chrome | Project lists PHP 7.4–8.5 and Chrome/Chromium 65+ installed. | You want direct PHP-level control of Chrome or Chromium, including documented clip and full-page capture options. |
| Spatie Laravel Screenshot | Current requirements page lists PHP 8.4+ and Laravel 12+. Its Browsershot driver needs Node.js and Chrome/Chromium; its Cloudflare driver uses Browser Rendering. | Your app is on a compatible Laravel/PHP version and you want a Laravel-oriented driver interface. |
These are compatibility and feature comparisons, not benchmark results. The reviewed documentation does not establish which package is faster, more reliable, or more visually accurate.
Spatie Browsershot: the concise URL-to-image workflow
Browsershot is the most straightforward starting point when your deployment can support its browser runtime. Its PHP API delegates rendering to Puppeteer, which controls headless Google Chrome. The package documentation describes converting webpages to images or PDFs, and also supports passing arbitrary HTML, retrieving body HTML after JavaScript executes, and reporting requests triggered by a page.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
Basic usage
Install the package with Composer, set up the required browser environment as described in the package documentation, then save a URL capture:
composer require spatie/browsershot
<?php
use SpatieBrowsershotBrowsershot;
Browsershot::url('https://example.com')
->save('/absolute/path/to/page.png');
The path must be writable by the PHP process. Browsershot’s README notes that Puppeteer is needed for the package’s test suite; rendering itself uses Puppeteer and headless Chrome, so configure the runtime and executable paths for your deployment rather than assuming a PHP-only installation is sufficient.
Relevant capture controls
The image documentation describes PNG as the default, full-page capture, device scale settings, mobile/device emulation, waiting for page state or selectors, and injecting JavaScript or CSS. Optional image manipulation uses spatie/image v3 or higher. Confirm the exact method names and availability in the release you install.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
chrome-php/chrome: direct control of Chrome from PHP
This library exposes browser and page lifecycle operations from PHP rather than wrapping a Puppeteer workflow. Its repository documents PHP 7.4–8.5 and an installed Chrome/Chromium executable version 65 or later. It says the library is tested on Linux and compatible with macOS and Windows; that does not guarantee every deployment-specific browser configuration will work unchanged.
Free tools Windows power users keep installed
One-click scans. No signup required.
Install and capture a URL
composer require chrome-php/chrome
<?php
require 'vendor/autoload.php';
use HeadlessChromiumBrowserFactory;
$browserFactory = new BrowserFactory();
$browser = $browserFactory->createBrowser();
try {
$page = $browser->createPage();
$page->navigate('https://example.com')->waitForNavigation();
$page->screenshot()->saveToFile('/absolute/path/to/page.png');
} finally {
$browser->close();
}
Use the documented browser-factory configuration when Chrome is not on the default executable path or the runtime needs particular launch settings. Keep browser cleanup in a finally block so exceptions during navigation or saving do not leave the browser process running.
Documented output and page controls
The project documents PNG, JPEG and WebP output; JPEG/WebP quality settings; clipping to a selected page area; and full-page capture using captureBeyondViewport with a full-page clip. It also exposes JavaScript evaluation, mouse and keyboard emulation, and PDF output. Consult the project examples for the exact option structure supported by your installed version.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Spatie Laravel Screenshot: a Laravel-specific driver interface
For a Laravel project, this package adds a driver-based interface and documents two back ends: Browsershot and Cloudflare Browser Rendering. The current requirements page lists PHP 8.4+ and Laravel 12+. Its local Browsershot driver requires Node.js and a Chrome/Chromium binary; the Cloudflare option uses the provider’s Browser Rendering API. Check the package’s installation and driver configuration guide before adopting it.
A hosted browser can shift local browser operations to a provider, but evaluate the provider’s current cost, data handling, availability and operational terms independently. The package documentation establishes that the driver exists; it does not establish those terms.
How to decide between the packages
Check PHP and framework compatibility first
Match the version constraints to your actual runtime and framework, then verify them again against the specific release you will install. The Browsershot figure is the Packagist constraint for v5.4.0 at the date noted above; Laravel Screenshot’s requirements are for its current documentation; the chrome-php/chrome range is the project’s listed support range.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Choose who operates the browser
- Browsershot: your environment must support Puppeteer and headless Chrome.
- chrome-php/chrome: your environment must provide a compatible Chrome/Chromium executable.
- Laravel Screenshot: choose between its local Browsershot driver and hosted Cloudflare Browser Rendering driver.
Match controls and integration style to the task
- Browsershot documents full-page capture, sizing, device emulation, waits, CSS/JavaScript injection and optional image manipulation.
- chrome-php/chrome documents output formats, quality, clipping and full-page capture, alongside browser interaction APIs.
- Browsershot uses a compact fluent interface; chrome-php/chrome exposes browser/page operations; Laravel Screenshot adds a Laravel-oriented driver abstraction. These describe documented API styles, not measured productivity differences.
Operational notes: performance, reliability and cost
Every local option adds browser runtime management to a PHP application. You need to provision the executable and its dependencies, make sure the PHP process can launch it and write the output, and account for browser process cleanup. Browsershot additionally involves Puppeteer and Node.js in the rendering setup; Laravel Screenshot’s documented local driver also requires Node.js. A hosted driver changes where rendering runs but adds an external provider to evaluate.
The documentation reviewed does not provide comparable performance, reliability, fidelity or package-cost benchmarks. Rendering time and success depend on the target page and deployment environment, so do not infer a winner from feature lists. Before choosing for a production workload, test representative pages—including JavaScript-heavy pages, long pages and pages with slow resources—under the same environment and capture settings you intend to use.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshooting common setup and capture problems
- Chrome or Chromium cannot be launched: confirm the executable is installed, its path is available to the PHP process, and it meets the package’s stated version requirements. Check that the runtime user can execute it.
- Browsershot does not render although PHP code runs: verify the Puppeteer and headless Chrome setup described by the installed Browsershot release. Check the Node.js and browser paths in the deployment environment.
- Capture is blank or incomplete: navigation completion does not always mean a site’s asynchronous content has finished rendering. Use the package’s documented wait or selector options where available, and test against the page’s actual readiness condition.
- Images or content below the fold are missing: enable full-page capture when the package and use case support it. For lazy-loaded assets, allow the page to load them before capture; the package documentation should be checked for exact behavior and options.
- Output cannot be saved: use a valid destination and verify that the PHP process has write permission to the target directory.
- Browser processes accumulate: ensure your code closes browser instances even when navigation, capture or file writing throws an exception.
- Options shown in an example are rejected: check the documentation for your installed package version. Methods and compatibility can change between releases.
Or skip the browser setup
If you want a URL-to-image result without installing and maintaining Chrome or Chromium in your PHP environment, ScreenshotNeo is a hosted screenshot API and MCP server. A GET request returns an image or PDF; cookie/consent banners, newsletter popups and chat widgets are removed before capture, and each can be disabled. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads and cache hits are not billed, with response headers identifying the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info and capture_pdf tools for AI agents and MCP clients.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Example cURL request (replace the URL and API key):
Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Plans include 1,000 shots per month free with no card; paid plans start at $5 for 3,000. Sign up for 1,000 free screenshots a month—no card required.
Frequently Asked Questions
Can these packages capture a URL that requires JavaScript?
Yes. They use or control Chrome/Chromium, which can render JavaScript-driven pages. The page must still finish the relevant asynchronous work before the capture occurs; use documented wait controls where needed.
Is one of the PHP packages proven to be the fastest?
No comparative speed benchmark was established in the reviewed documentation. Test your target pages on the deployment setup you intend to use.
Do I need Node.js for every option?
No. Browsershot uses Puppeteer, and Laravel Screenshot’s Browsershot driver specifies Node.js. chrome-php/chrome documents direct use of an installed Chrome/Chromium executable.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




