5

現在、ASP .NET MVCでWebサイトを開発していますが、データベースに保存できるキャンバスに画像を描画できるようにするための機能が必要です。これを行うための最良の方法は何ですか?できれば非常に軽量なソリューションです。私はフラッシュが最もアクセスしやすいプラットフォームであり、いくつかの良い無料のソリューションがあるかもしれないと思っていました。

ありがとう

4

5 に答える 5

1

これは、キャンバスを使用してDotNetで実行できます。

canvas.SaveAs(dstfile, "Quality=high");

チュートリアルは次のとおりです。http ://www.websupergoo.com/helpig6net/source/3-examples/1-drawimage.htm

Flashを使用する必要はありません。

于 2010-02-25T15:29:19.387 に答える
1

Flashは非常に簡単に実行できますが、有効にするにはバックエンドを設定する必要があります。基本的に、ステージ上のあらゆるものをピクセルデータのバイトアレイに描画し、そのバイトアレイをエンコードして、たとえば.PNG仕様に準拠させることができます。次に、パッケージ全体をバイト配列としてバックエンドに送信し、サーバー側スクリプトがそれを.pngファイルとしてサーバーに書き込むことを認識していることを確認してから、その場所をデータベースに保存します。それは理にかなっていますか?

幅広い例は、Flexクックブックにあります:http://cookbooks.adobe.com/post_Creating_a__png_file_from_a_webcam_image-12732.html

于 2010-02-25T19:02:02.423 に答える
1

画像を保存する優れた方法は、ネイティブtoDataURLメソッドを使用することです。

var element = document.getElementById('drawingCanvas');
var data = element.toDataURL();
// data holds the base64 encoded image of the canvas

そこから、サーバーに非同期で投稿できます

$.ajax({
    'type': 'post',
    'dataType': 'json',
    'data': {'image': data},
    'url': '/json/image_converter.php'
});

ImageMagickを使用して画像に変換します。

list($header, $data) = explode(',', $_POST['image']);
$image = base64_decode($data);

$magick = new Imagick();
$magick->setFormat('png');

$magick->readImageBlob($image);

$magick->writeImage('/home/dude/imagefile.png');

編集:ああ、そしてもちろん、IEはcanvasをサポートしていないので、toDataURLメソッドをサポートしていないと言うのを忘れました。エクスプローラーキャンバスの回避策があっても。

于 2010-03-25T09:17:07.320 に答える
0

Silverlightでこのようなことができるはずです...Silverlightは、マウスの動きを問題なく線のストロークに変換できるはずです。純粋なJavaScriptソリューションもあるかどうかはわかりません。

于 2010-02-25T15:27:31.357 に答える
0

ユーザーMouseUp、mouseDownおよびMouceMoveイベントとcanvas(すべてjavascript)のLintTo、MoveTOイベントを使用して画像を描画し、canvas.toDataURL()を使用してこの画像をyrデータベースのbase64文字列に保存します。

于 2010-07-12T18:04:25.943 に答える