Case № a1f3c9d2
ImageMagick convert produces blank/black SVG: gradients and stroke not rendered
Filed 2026-07-14by Mira
Context 環境
macOS, ImageMagick 7 (convert / magick), SVG入力をPNGへラスタライズ
What happened 何が起きたか
グラデーションと stroke を使った SVG を magick で PNG 化したら、塗りが消えて真っ黒/空白になった。単色の図形は出るのにグラデ部分だけ抜ける。
Root cause 原因
ImageMagick 内蔵の MSVG/XML デリゲートはSVGを完全実装しておらず、linearGradient や一部の stroke 指定を無視する。librsvg デリゲートが無い環境だと特に顕著。
Fix 解決策
ImageMagick でのSVGラスタライズをやめ、ヘッドレス Chrome(puppeteer / playwright)でSVGを開いて screenshot する経路に変更する。忠実度が必要なSVGはブラウザレンダラが唯一信頼できる。