image1.canvas.pixels[i,j]:=????
是个256的灰度图,那个???是我想添加的颜色,
应该写什么呀??类型,长度??
能不能将一幅256图的颜色经过均衡即ss[i,1]存颜色从0..255,s[i,2]存比例
image1.cancas.pixels[i,j]:= round( ss[此处是原图一点的颜色,2]*255)
我试不行,不知哪错了
是个256的灰度图,那个???是我想添加的颜色,
应该写什么呀??类型,长度??
能不能将一幅256图的颜色经过均衡即ss[i,1]存颜色从0..255,s[i,2]存比例
image1.cancas.pixels[i,j]:= round( ss[此处是原图一点的颜色,2]*255)
我试不行,不知哪错了
解决方案 »
- 本人刚学indy TCP Server,疑惑一个问题:Server能判断是哪个IP发的数据吗?
- delphi中,使用XML的优势?
- 100分求edit限制输入的问题
- 想设计这样一种三层分布式系统,不知是否可行?
- 如何在DBGRIG堪入DBLOOKUPCOMBOBOX?
- 有没有办法把一个目录转变为文件,而在程序内部可以把其看作目录。
- 如何用SDK?100分呀?
- 散分,明天朋友结婚,身在外地也不能去庆贺了。顺便也给大家拜个早年
- ISAPI的问题?
- 我的窗体上有一个Lable,其Caption为Email地址,如何click it 调用系统默认的邮件程序给此地址发邮件
- 大型成大熟erp大软件技术转让
- 请问哪里有ACReport报表编辑器下载啊?急用?在线等
不管你是什么模式的图,
内部都是转成24位处理的,
要处理灰度图的亮度比例,
只要3原色分别做同样处理就可以了,
首先取出原图一点的值:
var myColor:Tcolor;//取的点的颜色
r,g,b:byte;//3原色
s: integer;//变换比例
myColor:=image1.canvas.pixels[i,j];
然后分别取出此点r,g,b值:
r:=getrvalue(mycolor);
g:=getgvalue(mycolor);
b:=getbvalue(mycolor);
再对r,g,b做变换:
r:=r*s;
g:=g*s;
b:=b*s;
最后写回去:
image1.canvas.pixels[i,j]:=rgb(r,g,b);注意处理后的r,g,b值要控制在0-255间
也就是s必须在0..1
这几天我已经自己弄出来了!!
thank you all the same!!我等一等结贴
to: ehom
你好,我现在非常希望提高效率!!
可我不懂ddb与gdi的区别呀!!我们这的老师也没牛的
图象的作业我看c++书的代码执行效率特高,而我这就……
拜托师兄给段代码吧!!!!
谢谢
最近正在学这个,我发现scanline在作有的东西时不方便,比如任意角度旋转!!
只好用pixels,这时效率与vc++就有很大差距,怎么办呀
google也不太会用,要你讲似乎挺麻烦你的,也超出了问题的范围!!!我自己看吧……
哎,要学的太多了
>>只好用pixels,这时效率与vc++就有很大差距这和开发工具有关系???毫无关系.我上面已经把理由说的非常非常清楚!!!你觉得VC++效率高?很遗憾Delphi可以写出完全一样的代码?你可以把你认为效率高的任何C++代码用Delphi改写出来,效率不会有差别。如果你是选择用GDI,用VC++也是一样慢,会有区别?不会,一点区别都没有。什么叫方便?什么叫不方便?DIB内存一样可以用X、Y两个参数的方式去访问像素信息,这只是封装的问题。你的整个观点还是完全错误的。