3

ユーザーが独自の SVG 画像を作成できるページがあります。ここで、サーバー (php) 上のこれらの画像にアクセスして、電子メール アドレスに送信できるようにしたいと考えています。

これらの手順で、SVG をキャンバスに変換してから、キャンバスを jpeg/png に変換できます。SVGツリーはもう編集する必要がないので、もう心配していません。したがって、通常の画像に変換します(その方が扱いやすいと思っていましたが、最終的にはその画像を添付ファイルとして送信したいと思いますEメール)。

これを行う最も効率的な方法は何でしょうか? 変換した jpeg/png をサーバーに POST することはできますか? みんなありがとう、ここでちょっと迷った。

4

1 に答える 1

4

より多くの読書の後、私はかなり簡単な解決策を見つけることができました。

canvgを使用して SVG を通常のキャンバスに変換したら、canvas.toDataURL() メソッドを使用できます。あとは、生成された URL を POST し、サーバー上でデコードするだけです。これには非表示の入力フィールドを使用しました。JQuery は実際のキャンバスではなく JQuery オブジェクトを返すため、キャンバスの取得に JQuery を使用しないように注意してください。

var canvas = document.getElementById('canvas');
var dataUrl = canvas.toDataURL();
$('#hiddenInput').val(dataUrl);

そしてサーバー側では:

$encodeData = $_POST['dataUrl'];
$encodeData = substr($encodeData, strpos($encodeData, ',') + 1); //strip the URL of its headers
$decodeData = base64_decode($encodeData);
$handle = fopen('test.png', 'x+');
fwrite($handle, $decodeData);
fclose($handle);

SVG はサーバー上に png として保存されます。

于 2012-09-10T11:28:42.283 に答える