Thio's SVG Thumbnail Extension ThioJoe
Use this command to install Thio's SVG Thumbnail Extension:
winget install --id=ThioJoe.SvgThumbnailExtension -e
A native hardware-accelerated Windows SVG thumbnail handler for Windows.
README
Thio's SVG Thumbnail Extension for Windows Explorer
A high-performance thumbnail provider for Windows that generates explorer thumbnails for .svg
and .svgz
files, written in Rust, with no third party dependencies.
Why Use This One?
<b>No Third-Party Dependencies</b>
Built using only official Microsoft-published Rust crates (found in the <a href="https://github.com/microsoft/windows-rs">windows‑rs</a> repo).
<b>Works Purely Through Windows API</b>
Operates purely through the built-in Windows API for rendering and COM integration. Just a single native DLL.
↳ No third party libraries that may go out of date or add overhead
<b>Trusted Certificate Signed</b>
Signed via Azure Trusted Signing, which requires rigorous verification of real-world identity.
↳ Proves it's not made by an unaccountable/unknown developer
Note: Also see current limitations section
Screenshot
How To Install
- Go to the Releases page.
- For the latest release, look under
Assets
and download the.msi
installer and run it. - Windows Explorer will now automatically use this provider to display thumbnails for
.svg
and.svgz
files.
Notes:
- It can be uninstalled like any other app in Windows' Installed Apps list
- To manually register the DLL yourself instead of using the installer, see these instructions here.
Current Limitations:
- Currently, a small fraction of SVGs may render as black squares or as being filled completely black
- Such SVGs contain properties not supported by the Direct2D API which this extension uses
- There is also no support for text glyphs
- Overall, a vast majority of SVGs should render correctly. If you notice any from a particular program that consistently don't render, you can create an issue and I can see if anything can be done.
How it works (Technical Details)
When Windows Explorer needs a thumbnail for a .svg
file, it interacts with this DLL through a series of steps:
- Initialization: Explorer provides the
.svg
file's data as a stream to the DLL. The provider reads this entire stream into memory. - SVG Data Pre-Processing:
- The API doesn't support CSS `