• 12070阅读
  • 6回复

QPixmap获取的图像如何灰度化? [复制链接]

上一主题 下一主题
离线米尔利安
 

只看楼主 正序阅读 楼主  发表于: 2008-11-03
— 本帖被 XChinux 执行加亮操作(2008-11-03) —
如题,找不到QPixmap里面相应的读写数据部分的函数……
应该是获得图片的RGB分量,然后通过公式计算出灰度值再返写回去……吧?
麻烦哪位大大指示一下需要用哪个函数呗?我找过QT文档了。。。一头雾水。。。
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
离线米尔利安

只看该作者 6楼 发表于: 2008-11-08
引用第3楼guanxu于2008-11-06 18:25发表的  :
Mono 是很难看得 黑白图!!!!
如果要用软件实现的话,
遍历每个像素用QImage::setPixel() 得到当前的像素值,进行计算,
将得到的值用 setPixel() 写入就行了。
.......



用的是QPixmap类,没有用QImage类……没办法这么做了。
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
离线lazybone
只看该作者 5楼 发表于: 2008-11-07
如果图片不是很大 用QIcon试试 我记得里面有个自动的方法 将 Icon变灰
离线priestmoon

只看该作者 4楼 发表于: 2008-11-06
mark
离线guanxu

只看该作者 3楼 发表于: 2008-11-06
Mono 是很难看得 黑白图!!!!

如果要用软件实现的话,
遍历每个像素用QImage::setPixel() 得到当前的像素值,进行计算,
将得到的值用 setPixel() 写入就行了。

这样对比较小的图像速度还行,不过如果图像比较大,速度会很慢。

我刚刚做好一个程序,使用 qt + openGL + GLSL 来实现的。
用硬件加速的速度就是快。
不过涉及的只是太多,我就不详细说了。
离线米尔利安

只看该作者 2楼 发表于: 2008-11-03
引用第1楼lazybone于2008-11-03 14:05发表的  :
QPixmap有个方法
fromImage(QImage image, Qt.ImageConversionFlag[] flags)
常量 MonoOnly  : 即为灰度图
public static final Qt.ImageConversionFlag MonoOnly  The pixmap becomes monochrome.

谢谢,我试试看哈~不过我没用QImage类。。。
[ 此贴被米尔利安在2008-11-03 17:02重新编辑 ]
我们在天上的父,愿人都尊你的名为圣。
愿你的国降临。
愿你的旨意行在地上,如同行在天上。
离线lazybone
只看该作者 1楼 发表于: 2008-11-03
QPixmap有个方法
fromImage(QImage image, Qt.ImageConversionFlag[] flags)
常量 MonoOnly  : 即为灰度图
public static final Qt.ImageConversionFlag MonoOnly  The pixmap becomes monochrome.
快速回复
限100 字节
 
上一个 下一个