Site icon บริษัท โค๊ดบี จำกัด

html5 canvas อัพโหลด และ ลบพื้นหลังของรูป

html5-canvas-อัพโหลด-และ-ลบพื้นหลังของรูป

html5-canvas-อัพโหลด-และ-ลบพื้นหลังของรูป

canvas คือ tags ที่เกิดขึ้นใหม่ใน html เวอร์ชั่น 5 หรือที่เรามักเรียกติดปากว่า html5 ความสามารถของ html5 canvas คือ เราจะสามารถจัดการกับวัตถุที่ถูกวาดลงบน canvas ได้ละเอียดมากขึ้น มากกว่า html element ทั่วไป

canvas จึงเหมาะกับการพัฒนา Game, Animation Frame By Frame, Web Application ในบทความความจะมาแนะนำการอัพโหลดรูปจากเครื่องเรา ไปแสดงผลบน canvas จากนั้นใช้ความสามารถของ canvas context2d ในการลบพื้นหลังของรูป

อัพโหลดรูปแสดงผลบน Canvas

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
function handleImage(e){
    var reader = new FileReader();
    reader.onload = function(event){
        var img = new Image();
        img.onload = function(){
            var hRatio = canvas.width / img.width    ;
            var vRatio = canvas.height / img.height  ;
            var ratio  = Math.min(hRatio, vRatio);
            ctx.drawImage(img, 0,0, img.width, img.height, 0,0,img.width*ratio, img.height*ratio);
        }
        img.src = event.target.result;
    }
    reader.readAsDataURL(e.target.files[0]);     
}
document.getElementById('fileupload').onchange = handleImage;

ลบพื้นหลังของรูปด้วย Context2D

var image = ctx.getImageData(0,0,img.width*ratio, img.height*ratio);
var imageData = image.data;
var length = imageData.length;
for (var i=0; i 



for (var i=0; i 



var color_code_for_remove = "#fbe88c";
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
function handleImage(e){
    var reader = new FileReader();
    reader.onload = function(event){
        var img = new Image();
        img.onload = function(){
            var hRatio = canvas.width / img.width    ;
            var vRatio = canvas.height / img.height  ;
            var ratio  = Math.min(hRatio, vRatio);
            ctx.drawImage(img, 0,0, img.width, img.height, 0,0,img.width*ratio, img.height*ratio);

            var image = ctx.getImageData(0,0,img.width*ratio, img.height*ratio);
            var imageData = image.data;
            var length = imageData.length;
            for (var i=0; i 



Exit mobile version