GIMP编程:请教curve曲线调整如何应用到当前图片上?
gimp吧
全部回复
仅看楼主
level 2
中科慧眼 楼主
我下载了牛人hejiannn的开源代码---- GIMP beautify 和GIMP开源代码。
我想看滤镜如何在图上应用的。
读了2天代码,从beautify跟进到了GIMP中去.
通过分别标定RGB channel的曲线转折点,调用gimp_curves_spline使其应用到图像上去。
gimp_curves_spline在GIMP中定义,如何实现就在这里边。
用法如下: 读取输入的各通道参数并存储,并发送msg到 message_handler. --- > gimp_plug_in_handle_proc_run() --> gimp_pdb_execute_procedure_by_name_args()
然后根据里边的参数列表逐个调用gimp_procedure_execute(),里边调用
/* call the procedure */
return_vals = GIMP_PROCEDURE_GET_CLASS (procedure)->execute ()
再次困惑了,往下不知道调哪里去了,恳请牛人帮忙指正一下,到底哪里实现了曲线参数应用到图像的实现, 非常感谢!!!!
2015年05月12日 10点05分 1
level 2
中科慧眼 楼主
更新一下,今天继续看了一天的成果!
总体思想:把curve中的曲线分成了几个转折点,0 ~ 255 分成了几个区间,以前curve直线上的点x=y。 要按照新的曲线更新y的值, y=x*?, ?代表curve曲线的变化。
按照channel,生成新的0~255对应数组lut,按照如下方式转化即可:
dest[0] = lut[src[0]];
其中lut代表新生成的对应数组,
src代表原来的channel图像
des代表目标channel图像。
得到des即可。
中间调用实在是复杂,一言难尽, 研究GIMP代码真实受罪。还好大致理解了curve变化的思路。
如果有高人路过,希望继续指点。
2015年05月13日 11点05分 3
level 11
帮顶!!!
2015年05月14日 16点05分 4
level 7
看不懂,头大
2016年02月26日 22点02分 5
level 10
你直接发邮件给作者,如何?
简单直接
我一般遇到不懂的,就会联系作者请教,
大神们还是很热心的。
2016年02月27日 14点02分 6
1