亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁/技術文章
文章詳情頁

JavaScript canvas實現鏡像圖片效果

瀏覽:70日期:2023-12-02 11:18:03

本文實例為大家分享了JavaScript canvas實現鏡像圖片效果的具體代碼,供大家參考,具體內容如下

JavaScript canvas實現鏡像圖片效果

<!DOCTYPE html><html> <head><meta charset='utf-8'><title>Using image</title><style type='text/css'> * {/* margin: 0;padding: 0; */box-sizing: border-box; } canvas {/* border-width: 1px;border-color: #000000;border-style: solid; */ }</style> </head> <body><canvas id='canvas'></canvas><canvas id='mirror'></canvas><div> <input type='file' accept='image/*' /></div><script type='text/javascript'> window.onload = (event) => {main() }function main() {const canvas = document.getElementById('canvas');const mirror = document.getElementById('mirror');const ctx = canvas.getContext('2d');const mirrorCtx = mirror.getContext('2d');const inputFile = document.querySelector('input[type=file]');inputFile.onchange = (event) => { const files = event.target.files; if (files.length > 0) {const file = files[0]; // First fileconsole.log(file);const image = new Image();image.src = URL.createObjectURL(file);image.onload = function(event) { // console.log(event, this); URL.revokeObjectURL(this.src); canvas.width = image.width; canvas.height = image.height; mirror.width = image.width; mirror.height = image.height; ctx.drawImage(image, 0, 0); const emptyImageData = ctx.createImageData(canvas.width, canvas.height); const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); // console.log(getPixel(imageData, 0, 0)); // console.log(getPixel(imageData, 0, 5)); // console.log(getPixel(imageData, 0, 9)); // console.log(getColor(imageData, 0, 0, 'R')); // console.log(getColor(imageData, 0, 5, 'G')); // console.log(getColor(imageData, 0, 9, 'B')); // console.log(imageData); // const uint8ClampedArray = imageData.data; // uint8ClampedArray.length = imageData.width * imageData.height * 4; console.log(imageData.data[0]); for(let h = 0; h < imageData.height; h++) {for(let w = 0; w < imageData.width; w++) { const pixel = getPixel(imageData, h, imageData.width - w - 1); setPixel(emptyImageData, h, w, pixel);} } mirrorCtx.putImageData(emptyImageData, 0, 0); console.log(imageData, emptyImageData); function getPixel(imageData, row, column) {const uint8ClampedArray = imageData.data;const width = imageData.width;const height = imageData.height;const pixel = [];for(let i = 0; i < 4; i++) { pixel.push(uint8ClampedArray[row * width * 4 + column * 4 + i]);}return pixel; } function setPixel(imageData, row, column, pixel) {const uint8ClampedArray = imageData.data;const width = imageData.width;const height = imageData.height;for(let i = 0; i < 4; i++) { uint8ClampedArray[row * width * 4 + column * 4 + i] = pixel[i];} } // function getColor(imageData, row, column, color) { // const pixel = getPixel(imageData, row, column); // switch(color) { // case 'R': // return pixel[0]; // case 'G': // return pixel[1]; // case 'B': // return pixel[2]; // case 'A': // return pixel[3]; // } // return null; // }} }} }</script> </body></html>

參考:鏈接

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 日本一级特黄啪啪片 | 2020年国产一国产一级毛卡片 | 日韩高清成人 | 日韩视频www | 欧美成人免费全部观看天天性色 | 国产黄三级三·级三级 | 亚洲美色综合天天久久综合精品 | 91短视频在线观看手机 | 在线观看亚洲一区二区 | 精品一区二区三区在线观看l | 国产日韩欧美在线一区二区三区 | 亚洲欧美大片 | 在线免费视频a | 国产黄色的视频 | 亚洲永久 | 精品湿 | 亚洲特黄 | 色综合中文字幕在线亚洲 | 一级做人爰a全过程免费视频 | 欧美人人草 | 国产三级精品三级在线观看 | 在线免费观看一区二区三区 | 国自产拍在线视频天天更新 | 亚洲欧美日韩中另类在线 | 国产一级理仑片日本 | 久久视屏这里只有精品6国产 | 欧美综合一区 | 国产精品久久久久久久久久久久久久 | 欧美在线网 | 韩国理论毛片a级 | 久久99精品久久久久子伦小说 | 中国在线播放精品区 | www.国产嫩草在线观看 | 日韩精品亚洲一级在线观看 | 黄毛片在线观看 | 成人做爰毛片免费视频 | 麻豆回家视频区一区二 | 黄色片短视频 | 国产亚洲欧美在在线人成 | 国产免费又色又爽又黄在线观看 | 亚洲色图在线视频 |