·您当前的位置:首页 > 技术教程 > Html5技术 >

[CSS]图片变灰色的操作教程与步骤(彩色图像变成灰度)

时间:2017-08-29 09:46酷播
很多图片编辑如Photoshop很容易把你的彩色图像变成灰度。甚至有选择调整颜色深度和色调。不幸的是,这样的效果想做在网络上并不容易,因为浏览器有差异

很多图片编辑如Photoshop很容易把你的彩色图像变成灰度。甚至有选择调整颜色深度和色调。不幸的是,这样的效果想做在网络上并不容易,因为浏览器有差异。

1、CSS Filter

  使用CSS过滤器属性可能是最简单的方法把图像变成灰度。以往,IE浏览器有一个专有的CSS属性称为过滤应用自定义效果包括灰度。

  现在,过滤器属性是CSS3规范的一部分,并支持在一些浏览器,Firefox、Chrome和Safari。以前,我们也提到Webkit过滤器,它不仅将图像变成灰色也可以变成褐色和模糊效果。

  添加如下CSS样式可以将图像变成灰色

  1. img { 
  2. -webkit-filter: grayscale(1);/* Webkit */ 
  3. filter:gray;/* IE6-9 */ 
  4. filter: grayscale(1);/* W3C */ 
  5.   支持IE6-9和Webkit浏览器(Chrome 18+, Safari 6.0+, and Opera 15+) 
  6.  
  7.   (注意:这段代码在Firefox上无效果。) 

  2、Javascript

  第二种方法是通过使用JavaScript技术上应该支持所有JavaScript的浏览器,包括IE6以下

  代码来自Ajax Blender.

  1. varimgObj = document.getElementById('js-image'); 
  2. functiongray(imgObj) { 
  3. varcanvas = document.createElement('canvas'); 
  4. varcanvasContext = canvas.getContext('2d'); 
  5.  
  6. varimgW = imgObj.width; 
  7. varimgH = imgObj.height; 
  8. canvas.width = imgW
  9. canvas.height = imgH
  10.  
  11. canvasContext.drawImage(imgObj, 0, 0); 
  12. varimgPixels = canvasContext.getImageData(0, 0, imgW, imgH); 
  13.  
  14. for(vary = 0; y < imgPixels.height; y++){ 
  15. for(varx = 0; x < imgPixels.width; x++){ 
  16. vari = (y * 4) * imgPixels.width + x * 4; 
  17. varavg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3; 
  18. imgPixels.data[i] = avg; 
  19. imgPixels.data[i + 1] = avg; 
  20. imgPixels.data[i + 2] = avg; 
  21. canvasContext.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.width, imgPixels.height); 
  22. returncanvas.toDataURL(); 
  23. imgObj.src = gray(imgObj); 

来源:http://www.cnblogs.com/sosoft

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器