A high-performance thumbnail provider for Windows that generates explorer thumbnails for .svg and .svgz files, written in Rust, with no third party dependencies.
| No Third-Party Dependencies |
Built using only official Microsoft-published Rust crates (found in the windows‑rs repo)
|
| Renders Purely Via the Windows API | No separate third party library files that may go out of date or add overhead |
| Trusted Certificate Signed |
Signed via Azure Trusted Signing, which requires rigorous verification of real-world identity.
|
Note: Also see current limitations section
Open command prompt and run this command, which will automatically download and run the installer.
winget install ThioJoe.SvgThumbnailExtension
Assets and download the .msi installer and run it..svg and .svgz files.When Windows Explorer needs a thumbnail for a .svg file, it interacts with this DLL through a series of steps:
.svg file's data as a stream to the DLL. The provider reads this entire stream into memory.<style> blocks within a separate dedicated block, or at the top level. Therefore the script does some pre-processing on the XML so such SVGs will look correct<style> tags that apply styles to classes or named attributesSvgDocument object. The viewport attribute is set to the thumbnail size requested by Explorer..svgz data, which is simply gzip-compressed svg datawidth and height attributes are removed from the root <svg> element before drawing, which I discovered causes the DrawSvgDocument method to autoscale the image to the viewport, avoiding the need to do any manual scaling to fill the thumbnail.SvgDocument is then drawn onto the render target bitmap.unpremultiply effect is then applied to the bitmap, because the standard Windows GDI requires straight alpha.HBITMAP is created, which is the final format Explorer needs for the thumbnail.HBITMAP.catch_unwind). This ensures that if any unexpected error occurs during rendering, it will not crash the host application (e.g., explorer.exe).If you want to manually register the DLL yourself instead of using the MSI installer, follow these steps:
1. Go to the Releases page.
2. Download the latest win_svg_thumbs.dll file.
- IMPORTANT: For security, place it somewhere that requires admin access to write, such as making a folder in C:\Program Files
4. Open a Command Prompt with administrator privileges.
- (Administrator is required or you will get error 0x80004005 for lack of permission)
5. Navigate to the directory where you saved the .dll file.
6. Run the following command to register the DLL:
regsvr32 win_svg_thumbs.dll
To uninstall, run the following command in an administrator Command Prompt:
regsvr32 /u win_svg_thumbs.dll
git clone https://github.com/ThioJoe/win-svg-thumbs-rustcd win-svg-thumbs-rustcargo build --releasetarget/release directory.$ claude mcp add win-svg-thumbs-rust \
-- python -m otcore.mcp_server <graph>