2

このコードはほぼ機能
します。これにより、ページ全体がjpgの
質問に出力されます。内部のコンテンツのみを取得'#myDiv'してjpgファイルとして出力するにはどうすればよいですか。

JS:

$('.myButton').click(function(){
    $('#myDiv').html2canvas();//<< has no effect
    var queue = html2canvas.Parse();
    var canvas = html2canvas.Renderer(queue,{elements:{length:0}});
    var img = canvas.toDataURL();
    img.replace(/^data:image\/(png|jpg);base64,/, "");
    $.post( "postIO.php", {img:img}, function(data) {
        //$('#recieve').append(data);
    }); 
    return false;
});

postIO.php:

$canvasImg = $_POST['img'];    
//$canvasImg = str_replace('data:image/png;base64,', '', $canvasImg);

$data = base64_decode($canvasImg);
$File = "z.jpg"; 
$Handle = fopen($File, 'w');
fwrite($Handle, $data);  
fclose($Handle);

ここからの参照

4

2 に答える 2

3

html2canvasをダウンロードして試してみましたが、jqueryプラグインが完了していないことがわかりました(画像をキャプチャしてキャンバスを作成するだけで、使用できません)。そのため、キャプチャコードを自分で作成します。

var el = $('div').get(0);

function saveData(dturl){
    //Upload here
    console.debug(dturl);
}

html2canvas.Preload(el, {
    complete: function(image){
        var queue = html2canvas.Parse(el, image, {elements: el}),
            $canvas = $(html2canvas.Renderer(queue, {elements: el}));
        saveData($canvas[0].toDataURL());
    }
});

お役に立てば幸いです

したがって、プログラムで使用するには、次のように記述する必要があります。

function saveData(dturl){
    dturl.replace(/^data:image\/(png|jpg);base64,/, "");
    $.post( "postIO.php", {img:dturl}, function(data) {
        //$('#recieve').append(data);
    }); 
}

$('.myButton').click(function(){
    var el = $('#myDiv').get(0); 
    html2canvas.Preload(el, {
        complete: function(image){
            var queue = html2canvas.Parse(el, image, {elements: el}),
                $canvas = $(html2canvas.Renderer(queue, {elements: el}));
            saveData($canvas[0].toDataURL());
        }
    });
});
于 2012-05-28T02:20:56.080 に答える
1

var canvasImg = canvasRecord.toDataURL("image/jpg");、あなたはそれを使用してそれを交換する必要があるかもしれませんvar data = canvasImg.replace(/^data:image\/(png|jpg);base64,/, "");

それは$canvasImg = $_POST['canvasImg'];$_POST['img']の代わりですか?

于 2012-05-28T02:19:09.293 に答える