2015-03-03 79 views
0

當我點擊「拍照」時,我只是得到一個黑屏。我一直在嘗試3個小時來解決這個問題,但我已經陷入了死衚衕。我可以選擇平板電腦上的圖片,但我無法拍攝新照片。我的JS代碼如下所示:使用html 5拍攝圖片和js

function hasSelectedPhoto() { 
var x = 0, y = 0, width = 150, height = 130; 

var takePicture= document.querySelector("#take-picture"), 
    showPicture= document.querySelector("#show-picture"); 

if (takePicture&& showPicture) { 
    takePicture.onchange = function (event) { 
     var files = event.target.files, file; 

     if (files && files.length > 0) { 
      file = files[0]; 

      var reader = new FileReader(); 

      reader.onload = function (e) { 
       var imageUrl = e.target.result, c = showPicture, context = c.getContext("2d"), 
       imageObject = new Image(); 
       imageObject.onload = function() { 
        context.clearRect(x, y, width, height); 
        context.drawImage(imageObject, x, y, width, height); 
       }; 
       imageObject.src = imageUrl; 
      }; 
      reader.readAsDataURL(file); 
     } 
    }; 
} 

}

和HTML代碼:

<div id="uploadedImageDiv" style="margin-left: 10px; width:300px; float: left;"> 
      @Html.LabelFor(m => m.NoteViewModel.ImageUpload) 
      @Html.TextBoxFor(m => m.NoteViewModel.ImageUpload, new { id="take-picture", type = "file", accept = "image/*" })     
      <input type="button" id="cancelPicture" value="Annuller billede" style="visibility: hidden;" /> 
      <button type="reset" id="resetUploadedImage" style="display: none"></button>   
     </div> 

     <canvas id="show-picture" style="display: none; border: medium solid #cccccc; margin-top: -50px;" width="150" height="125"> 
     </canvas> 

我知道有一堆js代碼,但我真的希望有人可能會看到一個錯誤我的代碼,使得med無法拍照。我提前

+0

哪裏是試圖拍照的代碼?那你提到的「拍照」按鈕在哪裏? – 2015-03-03 10:40:46

+0

我編輯了我的代碼,因此您可以看到照片的拍攝地點。文本「拍照」是當我點擊文本框拍攝圖片時ipad變大的一個文本框 – user1960836 2015-03-03 11:30:45

+0

然後看起來問題來自平板電腦,而不是瀏覽器。 – 2015-03-03 11:33:40

回答

1

絕望

感謝您可以使用jQuery的html2canvas採取屏幕快照。

的細節,你可以參考link

只需下載html2canvas.js,並用它如下:

function takeSnapshot{ 
      var Obj = $("# id of you div or element"); 
      html2canvas($(Obj), { 
      onrendered: function (canvas) { 
        theCanvas = canvas; 
        document.body.appendChild(canvas); 
        var captureImage= canvas.toDataURL("image/png").replace(/^data:image\/(png|jpg);base64,/, ""), 
        document.body.removeChild(canvas); 
      } 
} 
+0

我剛剛在手機上試了一下,在這裏有效。是否需要在平板電腦上設置相機權限才能在網上使用相機?我試過尋找這個,但沒有發現任何東西 – user1960836 2015-03-03 13:51:29