Developer tools
Code to image
Paste code below and get a clean, syntax-highlighted picture of it - then download it as a PNG or copy it to the clipboard. Everything runs in your browser - nothing is uploaded.
How it works
Paste any code into the editor and the tool renders it as a polished image: syntax highlighted in a dark editor theme, framed in a window card with macOS-style controls, on a background color of your choice (black by default). The preview is the actual image - what you see is exactly the PNG you get. Pick a language or let auto-detection figure it out; PHP, JavaScript, TypeScript, HTML, CSS, SQL, Python, and many more are supported.
Tune the result with a few controls: background color, padding around the window, font size, window controls on or off, and an optional text shadow. Then download the PNG or copy it straight to the clipboard - it exports at 2x resolution, so it stays crisp in docs, slides, and social posts. Everything runs in your browser; your code is never uploaded anywhere.
Example. Paste a PHP function, leave the language on auto-detect, set the background to your brand color, and bump the padding to L. The preview updates as you type; hit Download PNG and drop the image into a presentation or a tweet.
FAQ
Is my code sent anywhere?
No. Highlighting and rendering happen entirely in your browser on a local canvas. Nothing is uploaded, logged, or stored on a server, so it is safe to paste proprietary code.
Which languages are supported?
The highlighter ships with the common-language pack: PHP, JavaScript, TypeScript, HTML/XML, CSS, JSON, SQL, Bash, Python, Java, C#, C++, Go, Rust, Ruby, Kotlin, Swift, YAML, Markdown, and more. Auto-detect picks the best match, or you can choose one explicitly from the list.
What resolution is the exported PNG?
The image is rendered at 2x scale, so a preview that is 800 pixels wide exports as a 1600-pixel-wide PNG. That keeps text sharp on high-DPI screens and when the image is scaled down in documents.
Why does my image get very wide?
Lines are never wrapped - the longest line sets the image width, just like a real editor screenshot. If the result is too wide, break long lines in the editor before exporting.