QT图片有彩到灰

移动开发
本文介绍的是关于QT图片有彩到灰的过程,文章内容不多,但能偶实现效果,简单的代码实现,请先看内容。

QT图片有彩到灰这是本文的内容,

QT的图像类有QImage,QPixmap,QBitmap,QPicture。

不过QPixmap和QBitmap是用来优化图像显示的,QPicture貌似可以记录QPixmap的操作记录,这个还没仔细看

QImage可以处理每个像素,这正是我所需要的查看帮助文档,发现QImage貌似没有直接读取为灰度图的(难道是我没发现?)于是采用最傻的方法:把RGB值设为相同的值,貌似很浪费空间的样子,思路就是读取每个像素的RGB值,再由此算出灰度值。

最大众化的计算公式是Gray = 0.3*R + 0.59*G + 0.11*B

QT中提供的方法有 int qGray ( QRgb rgb )

其计算公式是 Gray = (R * 11 + G * 16 + B * 5)/32

  1. void Picture::paintEvent(QPaintEvent*){   
  2.      QImage  image;   
  3.     image = QImage("airplane.jpg").scaled(200,200);   
  4.      int w,h;   
  5.      w = image.width();   
  6.      h = image.height();   
  7.      QImage iGray(w,h,QImage::Format_RGB32);     
  8.      for(int i=0; i<200; i++){  
  9.          for(int j=0;j<200; j++){  
  10.              QRgb pixel = image.pixel(i,j);  
  11.              int gray = qGray(pixel);  
  12.             QRgb grayPixel = qRgb(gray,gray,gray);  
  13.             iGray.setPixel(i,j,grayPixel);  
  14.          }  
  15.      }   
  16.      QPainter painter(this);  
  17.      painter.drawImage(0,0,image);  
  18.      painter.drawImage(200,0,iGray);  

运行结果:

QT图片有彩到灰

小结:QT图片有彩到灰介绍到这,通过以上的内容,还有效果图的实现,是不是感觉这个效果其实也挺好实现的呢?

【编辑推荐】

Qt中使图片像素变小

浅谈Qt中多线程编程

在Qt中如何写控制台程序

CSS图片替换的最佳实践

利用Qt绘图实现QWT绘制科学图表

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-30 15:10:46

Qt图片数据库

2011-06-14 13:07:54

Qt 图片

2011-06-28 14:39:00

Qt 图片

2011-06-20 15:52:14

Qt Designer 控件

2020-11-09 14:07:53

PyQtQt编程

2011-06-15 15:29:25

Qt C++

2015-10-28 10:31:47

2015-01-26 17:30:39

华为有线无线/华为

2011-04-21 10:02:34

2011-06-24 16:41:14

QT OpenCV 框架

2020-11-18 09:30:29

图片懒加载前端浏览器

2011-05-27 11:18:29

激光打印机解析

2018-09-02 16:03:43

自动化与响应SOAR事件响应

2009-03-10 19:03:11

Linux图形环境桌面

2011-11-08 14:44:12

爱普生喷墨打印机

2012-06-12 11:28:51

精益扫描仪

2011-06-14 14:43:03

灰盒测试

2015-05-20 12:53:46

戴尔云计算

2022-12-01 17:46:53

网页变灰功能前端
点赞
收藏

51CTO技术栈公众号