<template>
  <div class="container">
    <img :src="originalImage" class="original" @load="convertToGrayscale">
    <img :src="grayscaleImage" class="grayscale" v-show="grayscale">
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      originalImage: '/images/pic.jpg',
      grayscaleImage: '',
      grayscale: false
    };
  },
  methods: {
    convertToGrayscale() {
      let canvas = document.createElement('canvas');
      let ctx = canvas.getContext('2d');
      let img = document.querySelector('.original');
      canvas.width = img.width;
      canvas.height = img.height;
      ctx.drawImage(img, 0, 0);
      let imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
      let data = imageData.data;
      for (let i = 0; i < data.length; i += 4) {
        let brightness = (data[i] + data[i + 1] + data[i + 2]) / 3;
        data[i] = brightness;
        data[i + 1] = brightness;
        data[i + 2] = brightness;
      }
      ctx.putImageData(imageData, 0, 0);
      this.grayscaleImage = canvas.toDataURL();
      this.grayscale = true;
    }
  }
};
</script>
 
<style scoped>
.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}
 
.original, .grayscale {
  max-width: 300px;
}
 
.grayscale {
  display: none;
}
</style>
			以上是编程学习网小编为您介绍的“如何在Vue中实现图片的灰度处理?”的全面内容,想了解更多关于 vuejs 内容,请继续关注编程基础学习网。
				 沃梦达教程
				
			本文标题为:如何在Vue中实现图片的灰度处理?
				
        
 
            
        基础教程推荐
             猜你喜欢
        
	     - 关于文字内容过长,导致文本内容超出html 标签宽度的解决方法之自动换行 2023-10-28
 - CSS3的几个标签速记(推荐) 2024-04-07
 - this[] 指的是什么内容 讨论 2023-11-30
 - vue离线环境如何安装脚手架vue-cli 2025-01-19
 - js禁止页面刷新与后退的方法 2024-01-08
 - 浅析canvas元素的html尺寸和css尺寸对元素视觉的影响 2024-04-26
 - 浅谈Vue2和Vue3的数据响应 2023-10-08
 - Ajax实现动态加载数据 2023-02-01
 - JS前端广告拦截实现原理解析 2024-04-22
 - 基于Vue制作组织架构树组件 2024-04-08
 
    	
    	
    	
    	
    	
    	
    	
    	
						
						
						
						
						
				
				
				
				