5

人がページの1つに着地したときに、その場でsvgイメージタグを生成するJavaScriptコードがあります。画像の作成に役立つd3ライブラリを使用しています。唯一の問題は、d3が完全にIEと互換性がなく、svgファイルに基づいて.png、jpg、gif、またはその他の画像ファイルを生成したいということです。これを行うための既知の方法はありますか?サーバー側のコードはPHPベースであり、多くの動的コンテンツにnode.jsとrender.jsを使用しています。

4

2 に答える 2

5

ImageMagickを使用してSVG画像をPNG画像に変換しています。これはかなりうまくいきます。

これを行う方法の簡単な例:

exec('/usr/bin/convert /path/to/image.svg /path/to/output_image.png');

私はこれを使用して、libqrencodeで作成されたQRコードをさまざまなサイズと色に処理するのに大成功を収めています。

于 2012-07-05T19:53:04.897 に答える
3

まず、クライアント側でレンダリングされるsvgを取得するため、サーバー側でDOM実装を使用する必要があります。このために、node.jsでjsdomを使用します。これを使用すると、サーバー側でD3をレンダリングし、サーバーでsvgを取得して、任意の形式に変換できます。

これがその方法に関するリンクです。

SVGとPNGを入手したら、modernizer.jsを使用します

1)Modernizrを使用してブラウザの互換性を確認します。

2)次に、互換性に基づいてSVGまたはPNGをロードします。

例(JSソリューション):

if (!Modernizr.svg) {
$("#logo").css("background-image", "url(fallback.png)");
}

例(CSSソリューション):

.no-svg #logo { background-image: url(fallback.png); }
于 2012-12-13T06:11:45.850 に答える