SVG Studio

Load an SVG file or paste code to get a safe preview and a check of what is inside. Shrink it with SVGO, export PNG or WebP, turn it into a data URI, CSS or React code, and format it — all inside your browser.

On-device・No uploadMobile friendlyWorks offline

Your files and input are processed only inside your browser on this device and are never uploaded to our servers.

Load SVG

Drop files here (multiple allowed)

or

SVG is processed only in this browser and is never sent anywhere.Accepts: SVG files (.svg, up to 2 MB each, 20 files)Paste (Ctrl+V) also works

How to use

  1. icon.svg12 KB

    Add an SVG file or code

  2. icon.svg12 KB → 4 KB

    Check, then optimize with SVGO

  3. icon.svgOptimized SVG
    icon.pngSet the width

    Convert to PNG, WebP, Base64 and more

Check an SVG, make it lighter, then convert it to PNG, WebP and more
  1. Drop SVG files or click “Choose files” (several are fine), or paste code and click “Add pasted code”. “Try a sample” shows how it works.

  2. On the Check tab, review size, viewBox, element count, embedded images and font references, plus any script, on* attribute, external reference or non-SVG element (iframe, object…) found. Save the cleaned copy if you need it.

  3. On the Optimize tab, choose viewBox, IDs and decimal places, watch the before and after byte counts, and save the smaller SVG.

  4. On the Convert tab, export PNG or WebP (by width or scale, with a background), a data URI, Base64, a CSS background, or React (JSX).

  5. On the Format tab, pretty-print with indentation or collapse to one line, then copy or save.

What it does

Shown as an image, so scripts do not run

The preview loads the SVG as an image (an img with a blob: URL). In that mode scripts are not executed and external files are not loaded. Switch the background (checkerboard, white, black) and zoom 100–400%.

Detects risky parts and writes a cleaned copy

Lists script elements, on* attributes, javascript: URLs, http(s) and other external references, foreignObject, non-SVG elements such as iframe, object, embed and XHTML, CSS @import and external url(), ENTITY declarations and animations that rewrite href. The cleaned copy is made with DOMPurify (an SVG allow-list) and drops the items found and references to external resources. It is not a guarantee against every attack.

SVGO optimization with before/after bytes

Shrinks with SVGO (version pinned). Choose whether to keep the viewBox and IDs, drop width/height, and how many decimal places (0–8) to keep. Several files can be written out as one ZIP.

PNG, WebP and code output

Export PNG or WebP by width (px) or scale with a background, or turn the SVG into a data URI, Base64, a CSS background or React (JSX). JSX output converts class → className, stroke-width → strokeWidth and similar attribute names.

Everything stays on your device

Files and code are never sent anywhere, and your SVG code is never inserted into the page’s HTML.

Use cases

  • Shrink an SVG from a designer before putting it on a website
  • Check whether a downloaded SVG contains scripts or external references before opening it
  • Turn an SVG logo into a PNG (2× or 3×) or WebP for places that do not accept SVG
  • Use an icon as a CSS background, a data URI or a React component
  • Pretty-print a hard-to-read one-line SVG exported by an editor

Supported formats

Input

SVG files (.svg)Pasted SVG code

Output

SVG (optimized, cleaned, formatted)PNGWebP (supported browsers only)Data URI, Base64 URI, CSS backgroundReact (JSX)

Capability matrix

FeatureSupportNotes
Safe preview (background switch, 100–400% zoom)Supported—
List of size, viewBox, element count, embedded images, font and external referencesSupported—
Detect and remove script, on* attributes, javascript: URLs, external references, foreignObject, non-SVG elementsSupportedOnly the items listed on the Check tab are detected; it is not a guarantee that nothing else is wrong
SVGO optimization (viewBox, IDs, decimal places)Supported—
Convert to PNG and WebP (width, scale, background)SupportedUp to 8192 px per side and 40 million pixels; WebP only in supporting browsers
Convert to data URI, Base64, CSS background and React (JSX)Supported—
Format and single-line codeSupported—
Export animation (SMIL / CSS)Not supportedPNG and WebP are single still frames. Optimizing can change animations, so check the result
Outline text (turn text into shapes)Not supportedWhen converting to an image, text uses fonts installed on your device; web fonts are not applied
Convert while loading external files (images, fonts, CSS)Not supportedExternal references are not fetched. Embedded data: images work
Trace raster images (PNG, JPG) into SVGNot supported—

Limits & notes

  • Up to 2 MB per file, 10 MB in total and 20 files.
  • PNG and WebP output is limited to 8192 px per side and 40 million pixels.
  • Image export uses the SVG with scripts, external references and the other items found by the check removed.
  • Optimizing or formatting can change animations or whitespace inside text. Check the result in the preview.
  • If you embed SVG directly in a page, sanitize it on the server as well. The cleaned copy here is an aid for your own review.
  • Phones and tablets can load, check and convert SVG too, but reading the code and comparing the check items and optimize settings is more reliable on a PC.

Privacy & safety

Loading, checking, optimizing and converting SVG all happen inside your browser. Files and code are never sent to or stored on a server. Neither the contents nor the original file names are included in usage measurement.

FAQ

Does optimizing an SVG change how it looks?
Normally not, but fewer decimal places can shift fine detail slightly, and turning off “Keep IDs” breaks CSS or JavaScript that refers to IDs. Compare the preview with the original after shrinking.
Can I check whether an SVG contains scripts?
Yes. The Check tab shows whether script elements, on* attributes, javascript: URLs, external references and foreignObject are present, and how many. Saving the cleaned copy gives you an SVG without them.
How is the size decided when converting SVG to PNG?
You set a width in px or a scale. The base size is the SVG’s width and height if present, otherwise its viewBox, and 300×150 if neither exists. Anything over 8192 px per side or 40 million pixels is rejected.
Text in the converted PNG looks different
Text is drawn with fonts installed on your device; web fonts are not used and a fallback font appears if the font is missing. For exact results, have the source export an SVG with text outlined (this tool does not outline text).
Can I turn an SVG into a data URI or a React component?
Yes. On the Convert tab choose Data URI, Base64 or CSS background to get a string to copy. React (JSX) converts attribute names such as class → className and stroke-width → strokeWidth and rewrites style as an object.
Is my SVG uploaded to a server?
No. Loading, checking and converting all happen only in your browser.

Image Converter

Choose the target format first, then drop images to convert them in bulk. Tune quality per format, use lossless WebP, set a background for transparency and name the output files — nothing is uploaded.

No upload

Color Converter, Contrast Checker & Palettes (Color Studio)

Type one color and see it in HEX, RGB, HSL, HWB, OKLCH and approximate CMYK. Check WCAG contrast against a background (AA/AAA), generate complementary or triadic schemes and a 50–950 OKLCH scale, preview how a palette looks with color-vision deficiency, and export CSS variables or Tailwind config. Nothing leaves your device.

No upload

Icon Generator

From one image (or a letter or emoji), get favicon.ico, apple-touch-icon, Android/PWA icons, a maskable icon and an OGP image, plus the manifest and the <head> code to paste. Check blur at real size first — nothing leaves your browser.

No upload

Image Compressor

Drop images to shrink them in bulk while keeping them sharp. Convert to WebP or AVIF, resize, and compare before and after. Your images are never uploaded.

No upload

Font Studio

Drop a font file to see its names, glyph count and character coverage (JIS levels, jōyō kanji and Unicode blocks), and preview any text. Compare fonts side by side, convert to WOFF2 or WOFF, or keep only the characters you list. Everything runs in your browser and the font is never uploaded.

No upload

Batch Image Resizer

Resizing is free: drop a batch of images and resize them by width, longest edge, box crop and more. To change pixel dimensions, type the width or long edge in px. Make several sizes (say 320, 640 and 1280) from each image in one go, then copy ready-made srcset HTML. Your images are never uploaded.

No upload

Last updated: