国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 求助canvas繪制馬賽克的問題,老是取色不準(zhǔn)

瀏覽:56日期:2022-11-23 17:56:07

問題描述

鼠標(biāo)繪制的時候,取鼠標(biāo)當(dāng)前區(qū)塊的顏色值,然后設(shè)置畫筆的顏色,但是,取色老是差別很大,不知道是不是我的計算有問題,求助!

javascript - 求助canvas繪制馬賽克的問題,老是取色不準(zhǔn)

<!DOCTYPE html><html><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><meta name='viewport' content='width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1' /><title></title><head> <style>*{ margin: 0; padding: 0;}.box { position: fixed; top: 300px;}img { vertical-align: middle;} </style></head><body> <p class='box'><button id='create'>生成</button><button id='clear'>清除</button> </p> <canvas id='canvas'></canvas> <script src='http://m.cgvv.com.cn/wenda/js/jquery-1.9.1.js'></script> <script>// 本地圖片路徑var imgSrc = ’img/aaa.png’;var height = 300;var width = 480;//將圖片分成100份var xW = width / 100;var yH = height / 100;var clip = new mosaic(height, width, imgSrc);function mosaic(height, width, src) { var img = new Image(); var canvas = $(’#canvas’)[0]; var ctx = canvas.getContext(’2d’);img.addEventListener(’load’, function (e) {var mousedown = false, offsetX = canvas.offsetLeft, offsetY = canvas.offsetTop;canvas.width = width;canvas.height = height;ctx.drawImage(img, 0, 0, width, height, 0, 0, width, height);$(’#clear’).on(’click’, function () { ctx.drawImage(img, 0, 0, width, height, 0, 0, width, height);});$(’#create’).on(’click’, function () { var images = new Image(); images.onload = function () {$(’body’).append(images); } images.src = canvas.toDataURL()});// 計算當(dāng)前鼠標(biāo)坐標(biāo)值在這個100份格子中的位置function getPos(x, y){ var px, py; var result = {x, y}; var posArr = createPosArr(); for(var i = 0; i < posArr.length; i++){px = posArr[i].x;py = posArr[i].y;if(x >= px){ result.x = posArr[i].x; continue;} } for(var i = 0; i < posArr.length; i++){px = posArr[i].x;py = posArr[i].y;if(y >= py){ result.y = posArr[i].y; continue;} } return result;}function createPosArr(){ var arr = []; for(var i = 0; i < 100; i++){arr.push({ x: i * xW, y: i * yH}); } return arr;}function down(e) { e.preventDefault(); mousedown = true;}function up(e) { e.preventDefault(); mousedown = false;}function move(e) { if(!mousedown){return;} e.preventDefault();// 如果鼠標(biāo)按下 if (mousedown) {var pos = getPos(e.clientX, e.clientY);console.log(pos);var imgData = ctx.getImageData(pos.x, pos.y, 5, 5);var red = imgData.data[0];var green = imgData.data[1];var blue = imgData.data[2];var alpha = imgData.data[3] / 255;ctx.fillStyle = ’rgba(’ + red + ’,’ + green + ’,’ + blue + ’,’ + alpha / 2 + ’)’ctx.fillRect(pos.x, pos.y, 10, 10); }}// 在源圖像外顯示目標(biāo)圖像。只有源圖像外的目標(biāo)圖像部分會被顯示,源圖像是透明的。// ctx.globalCompositeOperation = ’destination-out’;canvas.addEventListener(’mousedown’, down);canvas.addEventListener(’mousemove’, move);canvas.addEventListener(’mouseup’, up); }); img.src = src;} </script></body></html>

問題解答

回答1:

可以試一下計算方格內(nèi)的顏色平均值。去平均值,可以參考下:https://github.com/JackGit/ca...

回答2:

取當(dāng)前坐標(biāo)顏色的時候?qū)捀咴O(shè)為1PX呢?var imgData = ctx.getImageData(pos.x, pos.y, 1, 1);剛好我也在弄這塊,https://github.com/S-mohan/ca...

標(biāo)簽: JavaScript
主站蜘蛛池模板: 成a人v| 国产成人18黄网站在线观看网站 | 高清性色生活片欧美在线 | 俄罗斯一级毛片免费播放 | 欧洲免费无线码二区5 | 欧美成人久久久免费播放 | 国产女人自拍 | 国产高清在线精品一区二区三区 | 日韩国产欧美在线观看一区二区 | a色毛片免费视频 | 欧美日韩亚洲一区二区三区 | 成a人片亚洲日本久久 | 99热久久国产这里是精品 | 一级黄网站 | 欧美一级在线视频 | 欧美一级淫片免费观看 | 国产在线观看第一页 | 日本久草视频 | 日本一区二区三区精品视频 | 欧美成人中文字幕 | 成人 在线欧美亚洲 | 在线国产观看 | 久久亚洲综合中文字幕 | 国产成人免费全部网站 | 国产成人精品在线观看 | 国产欧美精品一区二区三区四区 | 日产一区两区三区 | 一级女性全黄久久生活片免费 | 国产精品综合一区二区三区 | 狼人 成人 综合 亚洲 | 日本三级2021最新理论在线观看 | 国产精品18久久久久网站 | 国产成人三级经典中文 | 草草影院ccyy国产日本欧美 | 亚洲免费在线视频观看 | 永久黄网站色视频免费观看99 | 国产亚洲人成在线影院 | 俄罗斯毛片免费大全 | 久久久久国产精品免费免费 | 亚洲免费视频网站 | 男女乱淫免费视频 |