使用GetGValue和GetBValue及其相关函数,在Win32sdk帮助中有!
赋一小例子:(如何把颜色值转换为灰度值)
逐个像素转换。
function RgbToGray(Source: TColor) : TColor;
var Target: Byte;
begin
Target := Round((0.30 * GetRValue(Source)) +
(0.59 * GetGValue(Source)) +
(0.11 * GetBValue(Source)));
Result := RGB(Target, Target, Target);
end;
赋一小例子:(如何把颜色值转换为灰度值)
逐个像素转换。
function RgbToGray(Source: TColor) : TColor;
var Target: Byte;
begin
Target := Round((0.30 * GetRValue(Source)) +
(0.59 * GetGValue(Source)) +
(0.11 * GetBValue(Source)));
Result := RGB(Target, Target, Target);
end;
解决方案 »
- 怎样使标题根据内容长短居中显示
- 天价分请教一个Twebbrowser问题!!
- 如何禁止窗体缩放
- 在DELPHI里可不可以不用裝打印機,直接將數據送到LPT端口?
- dbexpress的问题求教,在线等待!!!!
- treeview中的内存释放问题
- delphi中有没有类似于movememory的函数?不是api函数
- 我碰到一个问题一下午也没搞出什么名堂,谁帮我出主意,立马加50分
- 谁知道判断在edit中输入是否为字符型的函数?
- 一个ActiveForm的问题
- 请问一个关于adoquery的更新问题
- 数据库问题,请对BDE和*.dbf文件有研究的高手帮个忙,一解决就给分,分不够再加。,一见兔子就撒鹰。
再加上楼上的楼上的函数就完成了。
建议先用ColorToRGB将其转换成RGB的颜色
如果亮度变暗,则弹出对话框可以这样:
你先保存上一个点的颜色值,然后与当前点的比较,根据这个比较结果调用
ShowMessage 就可以了。