Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
Base64

How to Convert a PNG Image to an HTML File

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You don’t convert a PNG’s pixels into HTML markup to display it. Instead, create an HTML document that refers to the PNG with an <img> element. If the HTML must work as a single file without a separate image, put the PNG’s Base64-encoded data in that element’s src. The right choice depends on whether you need a separate, replaceable image file or a self-contained document.

What “converting a PNG to HTML” means

A PNG is a raster image file: it stores image data, not the HTML instructions a browser uses to arrange a page. HTML can display that image, but adding it to a page does not turn its pixels into editable text, layout, or vector artwork. The PNG remains an image in both methods below. MDN documents PNG as the .png format with the image/png media type, and describes the HTML <img> element as a way to embed an image in a document. MDN’s image format guide and reference for <img> explain those roles.

For a normal webpage, keep the PNG as a separate file and point to it from HTML. For a single portable HTML file, encode the PNG as Base64 and place it in a data: URL. That is embedding image data, not converting the image into HTML drawing instructions.

Method 1: Make an HTML file that references the PNG

This is usually the simplest option. It keeps the image independently replaceable, and the HTML stays readable. Put both files in the same folder, using these names as an example:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option
  • index.html
  • picture.png

Save the following as index.html in that folder:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Picture</title>
</head>
<body>
  <img src="picture.png" alt="Describe what the image shows">
</body>
</html>
  1. Replace the sample alternative text with a brief, useful description of the image. If it is purely decorative and adds no information, use alt="".
  2. Check that the file is really named picture.png, including its extension. File names and folder names in the HTML must match the actual path.
  3. Open index.html in a browser. If the image is missing, check the path and filename first.

The src value is a relative path from the HTML file to the image. If the PNG is in an images subfolder, for example, use src="images/picture.png". If the HTML is in a subfolder and the image is alongside that folder, use the appropriate relative path, such as src="../picture.png". You can also use a full web address when the image is hosted online, but then the page relies on that address remaining available.

Meaningful alternative text makes informative images understandable to people who cannot see them and to other contexts where the image itself is not available. The appropriate wording depends on what the image communicates; describe its relevant content rather than its file type. The MDN <img> guide covers the element and its alternative text.

Method 2: Embed the PNG in one self-contained HTML file

If the recipient must receive just one file, you can encode the PNG’s binary data as Base64 and put it in an image data URL. A PNG data URL starts with data:image/png;base64,; the text after the comma is the encoded image data. MDN describes the general structure as data:[<media-type>][;base64],<data>. See MDN’s data URL reference.

Here is the image element to put in your HTML after replacing the explanatory text with the complete Base64 string:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
<img src="data:image/png;base64,PASTE_BASE64_DATA_HERE"
     alt="Describe what the image shows">

For a complete HTML document, put that element inside the <body> of the document shown in Method 1. Do not leave the example text PASTE_BASE64_DATA_HERE in the final file: the browser needs the full encoded payload, with no missing characters, after the comma.

Base64 represents the existing binary image bytes as text; it does not redraw, sharpen, compress, or improve the PNG. Because the encoded data becomes part of the HTML source, the resulting file is much longer and less convenient to read or edit than a document that references a separate image. MDN describes data URLs as a way to embed small files inline; there is no universal size cutoff that determines when an image is too large to embed. Consider how the file will be stored, transferred, and edited before choosing this method.

Generate a self-contained HTML file with Python

If you have Python available, this script reads picture.png from the current folder, Base64-encodes its bytes, and writes index.html. It uses only Python’s standard library. Change the alternative text to suit the actual image.

from base64 import b64encode
from pathlib import Path

png_path = Path("picture.png")
html_path = Path("index.html")
image_data = b64encode(png_path.read_bytes()).decode("ascii")

html = f'''<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Picture</title>
</head>
<body>
  <img src="data:image/png;base64,{image_data}"
       alt="Describe what the image shows">
</body>
</html>
'''
html_path.write_text(html, encoding="utf-8")
print(f"Wrote {html_path} with embedded data from {png_path}")

Save it as make_html.py next to picture.png and run python make_html.py (on some systems the command is python3 make_html.py). The generated index.html contains the image data, so it does not need picture.png beside it to display that image. Keep the original PNG if you may need to replace or edit the source image later.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose between a separate PNG and Base64

Question Separate PNG file Base64 data URL
Must the deliverable be one file? No; the HTML and PNG are separate files. Yes; the PNG bytes are part of the HTML text.
Should the image be replaceable independently? Yes; replace the PNG without editing the HTML, provided its path and name stay the same. Not conveniently; replacing it means generating or editing the embedded data.
How readable is the HTML source? Readable and compact, with a short image path. The encoded payload makes the document much longer and harder to inspect.
What does the browser display? The referenced PNG. The same PNG represented inline as Base64 data.

Choose the separate-file method for an ordinary page or when you want to manage the image as its own asset. Choose Base64 when portability as a single HTML file is the actual requirement and embedding the image data is suitable for your use.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

Common problems and fixes

  • The browser shows a broken-image icon. Confirm the src path, capitalization, file extension, and folder location. A file called Picture.png may not match a reference to picture.png on a case-sensitive system.
  • The page opens but the image is blank. Check that the PNG itself opens in an image viewer, then confirm the HTML points to the correct file. If using Base64, verify that the data URL starts with data:image/png;base64, and that the entire encoded payload was copied after the comma.
  • The self-contained HTML is unexpectedly huge. That is the trade-off of putting the image bytes into the document as encoded text. Use a separate PNG if a single-file deliverable is not essential.
  • The image appears but has no useful description. Update the alt text. For an informative image, describe the information a reader needs; for a purely decorative image, an empty alt attribute is appropriate.
  • You expected editable shapes or text. Referencing or Base64-embedding a PNG only displays the raster image. It does not extract its text, layout, or vector paths into HTML. SVG is a separate vector format, suitable when the original artwork exists in a form that can be represented as vectors; converting a PNG to SVG does not automatically recover vector paths from its pixels. See MDN’s guide to vector graphics in HTML.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Or skip the browser setup

If the task is actually to capture a webpage as an image—not to turn an existing PNG into HTML—ScreenshotNeo provides a screenshot API and MCP server. It is not a PNG-to-HTML converter. One GET request can return a webpage screenshot; this cURL example saves the result as WebP. See the ScreenshotNeo API documentation for request options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo accepts cookie or consent banners before capture and removes 60+ known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers identify the page verdict and whether the request was billed. AI agents can use its MCP server tools, including take_screenshot, get_page_info, and capture_pdf.

The free plan includes 1,000 shots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is available on every plan. This captures web pages; it does not embed a PNG you already have into an HTML document.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Sign up for 1,000 free screenshots a month with no card.

Related format: when SVG is different

SVG is a vector image format; PNG is raster. SVG may be appropriate for artwork such as icons and diagrams when vector source artwork is available or can be created. It is not required to display a PNG in HTML, and changing a PNG’s filename or wrapping it in an HTML page does not make it SVG. MDN’s image format guide describes PNG and SVG as different formats.

Frequently asked questions

Will the PNG become editable HTML text?

No. Both approaches display the PNG as an image. To make visible words editable as text or redraw artwork as HTML or vectors, you need the underlying text or suitable source artwork; embedding the PNG does not extract either.

Do I need to convert a PNG to SVG before using it on a webpage?

No. An HTML <img> can display a PNG directly. SVG is a separate vector format, not a required intermediate step.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read next

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.