2014-09-25 75 views
0

你能幫助我嗎?我正在尋找如何使用選擇按鈕添加上傳圖像或使用現有圖像添加圖像,然後繪製圖像並最後將其保存爲數據庫,如圖像的rute(例如images/canvas/draw1.jpg或。 PNG)添加圖像到選擇選項或上傳並繪製它的畫布

我按照這兩個教程...但我不知道如何完成它

select-diferent-image-for-canvas-background

dynamically-add-image-to-canvas

+0

你要價太高了一個問題#1。 SO問題應該關注於一個特定的問題,而不是關於如何上傳圖像,(2)如何編輯圖像,(3)如何將編輯後的圖像保存到數據庫等廣泛的問題。如果你對你的代碼有一個具體的問題,那麼SO將是正確的地方。 – markE 2014-09-25 17:53:46

+0

@markE,嗨,這是真的......對不起,我認爲我會保持第一個(select-diferent-image-for-canvas-background),因爲它是最完整的腳本,更接近我需要的.. 。我希望有人修復它...因爲我仍然像用戶如何不知道線索 – 2014-09-25 18:13:38

回答

0

這個例子從自己的桌面讓你的用戶拖動圖片到背景畫布:

var canvas = document.getElementById("bk"); 
 
var bkctx = canvas.getContext("2d"); 
 

 
// dropzone event handlers 
 
var dropzone; 
 
dropzone = document.getElementById("dropzone"); 
 
dropzone.addEventListener("dragenter", dragenter, false); 
 
dropzone.addEventListener("dragover", dragover, false); 
 
dropzone.addEventListener("drop", drop, false); 
 

 
// 
 
function dragenter(e) { 
 
    e.stopPropagation(); 
 
    e.preventDefault(); 
 
    } 
 
    // 
 

 
function dragover(e) { 
 
    e.stopPropagation(); 
 
    e.preventDefault(); 
 
} 
 

 
// 
 
function drop(e) { 
 
    e.stopPropagation(); 
 
    e.preventDefault(); 
 

 
    var dt = e.dataTransfer; 
 
    var files = dt.files; 
 

 
    handleFiles(files); 
 
} 
 

 
// 
 
function handleFiles(files) { 
 

 
    for (var i = 0; i < files.length; i++) { 
 

 
     // get the next file that the user selected 
 
     var file = files[i]; 
 
     var imageType = /image.*/; 
 

 
     // don't try to process non-images 
 
     if (!file.type.match(imageType)) { 
 
     continue; 
 
     } 
 

 
     // a seed img element for the FileReader 
 
     var img = document.createElement("img"); 
 
     img.classList.add("obj"); 
 
     img.file = file; 
 

 
     // get an image file from the user 
 
     // this uses drag/drop, but you could substitute file-browsing 
 
     var reader = new FileReader(); 
 
     reader.onload = (function(aImg) { 
 
     return function(e) { 
 
      aImg.onload = function() { 
 
       // draw the aImg onto the canvas 
 
       bkctx.clearRect(0, 0, canvas.width, canvas.height); 
 
       bkctx.drawImage(aImg, 0, 0); 
 
      } 
 
      // e.target.result is a dataURL for the image 
 
      aImg.src = e.target.result; 
 
     }; 
 
     })(img); 
 
     reader.readAsDataURL(file); 
 

 
    } // end for 
 

 
    } // end handleFiles
body { 
 
    background-color: ivory; 
 
} 
 
#dropzone { 
 
    border: 1px solid blue; 
 
    position: relative; 
 
    width: 300px; 
 
    height: 300px; 
 
} 
 
canvas { 
 
    border: 1px solid red; 
 
    position: absolute; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<h4>Drag an image from desktop to blue dropzone.</h4> 
 
<div id="dropzone" width=300 height=300> 
 
    <canvas id="bk" width=300 height=300></canvas> 
 
    <canvas id="canvas" width=300 height=300></canvas> 
 
</div>

+0

謝謝,但我認爲是更完整的威廉馬龍版本...我只需要知道如何選擇圖像中的選擇輸入在畫布內部顯示選定的圖像,然後用蠟筆或飛行員繪製。 – 2014-09-25 20:41:41

+0

你問過讓用戶改變背景 - 這就是我的回答。如果你想整合William Malone的繪圖代碼,那麼這超出了一個stackoverflow問題的範圍。我可以建議你自己嘗試整合它,並詢問另一個問題,如果你有關於你自己的代碼的更具體的問題... – markE 2014-09-25 21:01:06

+0

我問表單如何添加圖像與上傳或現有的圖像與選擇按鈕,然後繪製最後將圖像保存到數據庫中,就像圖像的rute一樣(例如images/canvas/draw1.jpg或.png)...您給我的拖拽,但我需要繪製該圖像的部分以及最後保存它...所以我告訴你,最完整的腳本是威廉姆斯的腳本...只是錯過了選擇輸入的部分圖像,然後保存它,但感謝您的支持 – 2014-09-25 21:18:11