4

phonegap でカメラ API を使用し、画像を定義済みのキャンバスに設定する html コードを作成する必要があります。動作するはずのコードをオンラインで見つけました(透かしも含まれています)が、キャンバスには何も返されません。誰かが私に欠けているものを教えてもらえますか? 私はhtmlとjavascriptが初めてで、カメラから撮った写真の上に重ねる他の画像を含めるように拡張する前に、この特定の部分がどのように機能するかを理解しようとしています。

ありがとう

<!DOCTYPE html>
<head>
<script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-    1.3.2.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
<script src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">

var canvas;
var watermark;

document.addEventListener("deviceready",onDeviceReady,false);  

function onDeviceReady() {
    canvasDOM = $("myCanvas")[0];
    canvas = canvasDOM.getContext("2d");

    watermark = new Image();
    watermark.src = "q1.jpg";    
} 

function cybershot() {
    navigator.camera.getPicture(camSuccess, camError, {quality: 75, targetWidth: 400,     targetHeight: 400, destinationType: Camera.DestinationType.FILE_URI});
}

function camError(e) {
    console.log("Camera Error");
    console.log(JSON.stringify(e));
}


function camSuccess(picuri) {
    console.log("Camera Success");

    var img = new Image();
    img.src = picuri;

    img.onload = function(e) {
        canvas.drawImage(img, 0, 0);
        canvas.drawImage(watermark, canvasDOM.width-watermark.width, canvasDOM.height - watermark.height);
    }  
} </script>


<style>
#myCanvas {
    width: 400px;
    height: 400px;
}
</style>


</head>
<body>
<h1>Watermark Camera</h1>


<button onclick="cybershot();">Capture Photo</button> <br>


<p>Canvas:</p>"

<canvas id="myCanvas"></canvas>
</body>
</html>
4

1 に答える 1

3

コードにキャンバスが必要ない場合は、このフィドルで概説されているシンプルでクリーンな方法を使用できます。

function onSuccess(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
}

または、キャンバスを使用する必要がある場合は、次のフィドルを参照してください。これは、プログラムによる画像要素を取得してキャンバスに描画できることを示しています。

function onSuccess(imageData) {
    var image = new Image();
    image.src = "data:image/jpeg;base64," + imageData;
    image.onload = function () {
        var height = 100;
        var width = 100;
        context.drawImage(image, width, height);
    }
}

どうやってそれをやっていくのか教えてください:)

于 2014-07-04T16:39:38.387 に答える