BIMI logo converter: SVG to SVG Tiny PS
Turn an SVG logo into a BIMI-ready SVG Tiny PS file. Every change is listed, the result is validated with the same rules as the BIMI checker, and the logo never leaves your browser.
By using these tools you accept the Terms and the Privacy page.
How the BIMI logo converter works
The BIMI logo converter rewrites an SVG logo as SVG Tiny PS, the restricted profile BIMI requires, and tells you what it changed and what still needs your design tool. It is for designers and email admins who have a vector logo but no file that passes BIMI validation. The sample logo is an everyday export with the problems BIMI rejects: a script, an event handler, an embedded image, a <style> block and a canvas that isn’t square.
How the conversion works
The converter reads the file with its own XML parser, rewrites the tree and writes it back out with two-space indentation, keeping the text inside <text> elements as written. The new file is then validated with the BIMI checker’s rules, plus checks for SVG features outside SVG Tiny PS, so the verdict describes the file you download, not the one you started with.
Styles, links and the canvas
- CSS cascade. From weakest to strongest: presentation attributes,
<style>rules by specificity and order,style=attributes, then!importantdeclarations. The value that wins is written as an attribute such asfill=. - Selectors. Only simple selectors are applied: an element name,
.class,#idor a combination. Other selectors and @-rules such as@mediaare dropped and named in a warning. - Properties and references. CSS properties that can’t be written as presentation attributes are dropped and listed, and a
url(),image-set()or<use>that points to another file is removed, also when it is spelled with entities or CSS escapes. Markup from other namespaces, such as HTML inside the SVG, is removed too.<a>elements are unwrapped and the artwork inside them is kept. - Canvas size. A missing viewBox is built from
widthandheightwhen they are plain numbers or pixels. Other units, such as%ormm, leave the size unknown, and you’ll need a square artboard in your design tool. - Title. The title field wins, then the file’s own
<title>, then a name taken from the file name, then “Logo”.
Reading the result
The headline tells you where you stand: ready to publish, converted with notes to check, still needing work in your design tool, or blank because nothing in the file is drawn. Each change is marked as a note, a warning when you should check the result, or a failure when part of the artwork is gone, as when embedded images are removed.
The preview shows the logo on a light and a dark inbox, cropped to a circle, a rounded square and a square, from 112 down to 32 pixels. A logo with a transparent background can vanish in dark mode. You can download the file, copy the SVG, or copy a plain-text report of every change and check.
Limits and next steps
The converter reads up to 2 MB of SVG text, nested at most 256 levels deep, with up to 50,000 elements and 256 attributes on each. Bitmap images and compressed .svgz files are refused with an explanation, and a file that isn’t well-formed XML is reported with the first error found, such as a closing tag that doesn’t match. A DOCTYPE with an internal subset is refused, because it can declare entities or hidden script attributes. BIMI also needs DMARC at quarantine or reject before any logo shows: the DMARC checker plans the steps, and the BIMI checker tests the record, logo and certificate together once they are published.
Updated · Maintained by Liviu Tanase
Questions
How do I make my logo BIMI compliant?
Choose or paste the SVG, type your brand name as the title and press Convert logo. The converter writes the SVG Tiny PS header (version="1.2", baseProfile="tiny-ps"), the <title> and a square viewBox, removes everything the profile forbids, and validates the new file. Fix anything listed under “What conversion can’t fix” in your design tool, download the file, host it over https and test the record with the BIMI checker. Logos only show once DMARC is at quarantine or reject.
Why is my BIMI logo not showing in Gmail?
Gmail shows a logo only when the domain passes DMARC with a quarantine or reject policy, the BIMI record at default._bimi points to an SVG Tiny PS file, and the record’s a= points to a VMC or CMC that contains that exact SVG. The BIMI checker tests the record, logo, certificate and DMARC policy together and names the step that fails.
What does the converter change?
It declares version="1.2" and baseProfile="tiny-ps", adds or keeps a <title>, removes x and y from the root, pads a non-square canvas to a square with the artwork centred, turns <style> rules and style= attributes into presentation attributes such as fill=, and removes scripts, event handlers, animation, <foreignObject>, embedded images, links to other files, comments, metadata and editor data. Each change is listed with the reason.
What can’t it fix?
Anything that would change how the logo looks. Embedded PNG or JPEG images are removed but can’t be replaced, so trace the logo as vector paths. Clipping paths, masks, filters (shadows, blurs) and patterns are outside SVG Tiny PS and are kept and flagged, so flatten them in your design tool. Live text should be converted to outlines. Files over 32 KB need simpler paths.
Can I convert a PNG or JPG?
No. BIMI requires vector artwork, and wrapping a bitmap in an SVG fails validation at mailbox providers. Export the logo as SVG from the original design file, or have it traced as vector paths, then convert that.
Is my logo uploaded?
No. The file is read, converted and validated by JavaScript in this page. The preview is shown from a data: URL inside an image element, which can’t run scripts or load other files. Nothing is sent to zerobounce.ai or anyone else.
What do I do with the converted file?
Host it over https on your own domain, for example https://example.com/bimi/logo.svg, and publish a TXT record at default._bimi.example.com with v=BIMI1; l= and that URL. Then run the BIMI checker. Gmail and Apple Mail also need a Verified Mark Certificate (VMC) or Common Mark Certificate (CMC), and the certificate must contain the same SVG.
Does the checker accept every file this tool says passes?
The validation here uses the same rules as the zerobounce.ai BIMI checker. Certificate issuers run stricter schema checks, which is why this tool also flags features outside SVG Tiny PS, such as masks and clipping paths, even though some inboxes draw them.