编程论坛
注册
登录
编程论坛
→
C++教室
获得了图片的数据区和颜色表,用画点的方法绘图效率好慢,有没有好方法效率高的
lanriver
发布于 2012-09-24 23:27, 761 次点击
获得了图片的数据区和颜色表,用画点的方法绘图效率好慢,有没有好方法效率可以大大提高的,同样的图片文件,我的需要一份多钟才能绘制完成,效率高的软件只需三秒钟。望赐教,谢谢!
8 回复
#2
rjsp
2012-09-25 08:43
用 StretchDIBits 等等
#3
lanriver
2012-09-25 21:37
rjsp:TKS!但由于我读取的图片非位图,图像数据和颜色表的存储顺序不一样,有没有直接一点的, StretchDIBits 似乎是位图的,版主的意思是转成位图然后显示对嘛?
#4
rjsp
2012-09-26 08:24
图像数据和颜色表的存储顺序不一样
------ 听不懂,两个不同的东西,哪里的顺序?
StretchDIBits 支持 位图、jpeg、png。
#5
lanriver
2012-09-26 21:13
以下是引用
rjsp
在2012-9-26 08:24:59的发言:
图像数据和颜色表的存储顺序不一样
------ 听不懂,两个不同的东西,哪里的顺序?
StretchDIBits 支持 位图、jpeg、png。
数据区从图像左上角第一个像素开始储存的,而位图是从左下角的第一个像素点开始的。 而且我获得的颜色表R,G,B分量和位图的256色表分量顺序也不一样。
[
本帖最后由 lanriver 于 2012-9-26 21:18 编辑
]
#6
rjsp
2012-09-26 22:53
数据区从图像左上角第一个像素开始储存的,而位图是从左下角的第一个像素点开始的。
------ bmp可以以左上角开始,也可以以左下角开始,由一个字段来设置。即使没有,也无丝毫关系,你可以反向Stretch上去
而且我获得的颜色表R,G,B分量和位图的256色表分量顺序也不一样
------ 不懂,什么“256色表分量”。既然你用颜色表,颜色表就是一个颜色映射,你填上你认为正确的对应就行了呀
#7
lanriver
2012-09-27 20:51
以下是引用
rjsp
在2012-9-26 22:53:22的发言:
数据区从图像左上角第一个像素开始储存的,而位图是从左下角的第一个像素点开始的。
------ bmp可以以左上角开始,也可以以左下角开始,由一个字段来设置。即使没有,也无丝毫关系,你可以反向Stretch上去
而且我获得的颜色表R,G,B分量和位图的256色表分量顺序也不一样
------ 不懂,什么“256色表分量”。既然你用颜色表,颜色表就是一个颜色映射,你填上你认为正确的对应就行了呀
BMP-8位位图,颜色表有256个表项(色),每个表项(色)的R.G.B.的储存顺序是B.G.R. 而我的获得的图像颜色表R.G.B存储顺序是R.G.B 谢谢rjsp的辛苦赐教,才接触绘图,不懂的地方请多多赐教,顺祝中秋和国庆佳节快乐!
#8
rjsp
2012-09-29 08:49
以下是引用
lanriver
在2012-9-27 20:51:02的发言:
BMP-8位位图,颜色表有256个表项(色),每个表项(色)的R.G.B.的储存顺序是B.G.R. 而我的获得的图像颜色表R.G.B存储顺序是R.G.B 谢谢rjsp的辛苦赐教,才接触绘图,不懂的地方请多多赐教,顺祝中秋和国庆佳节快乐!
既然你获得了颜色表,你把它的BGR改为RGB不就行了?
#9
lanriver
2012-09-30 17:11
以下是引用
rjsp
在2012-9-29 08:49:15的发言:
既然你获得了颜色表,你把它的BGR改为RGB不就行了?
谢谢版主的教导,编程的思想真的很重要。学习了!
1