想象力铸就光影魔术手
特别策划
一个摄影爱好者,在毫无帮助的情况下,苦苦摸索出艰深而美妙的图形算法。从此,众多摄影爱好者的数码相片中都闪耀着《光影魔术手》的丝丝魅力。
为数码摄影而生

写《光影魔术手》之前,王寅有两年多没有开发个人电脑上的程序,他疯狂地迷恋上了数码摄影。相比开发,摄影似乎更能直接展现王寅生活中的灵感。
当时他只有一台运行Windows 98的PⅡ300电脑,每次处理拍摄的照片时,都不得不等待臃肿的Photoshop 6漫长的启动过程,这让他烦躁不安。可当时市面上除了Photoshop这把牛刀,并没有其他好用的轻量级数码相片编辑软件。
好的庖丁不是去改造环境,而是适应环境后能造出适合自己的刀。通过和其他“色友”交流,王寅发现许多“色友”都遭遇过同样的问题,甚至许多用户对Photoshop一无所知。
此时的王寅已经积累了大量的摄影光学和图像知识,于是他决定为广大的摄影爱好者打造一款能“一针见血”的数码照片处理软件。
他告诉记者:“我反对对数码照片进行深度处理,那已不能算是摄影。所以我决定写一个能轻易上手的中文数码照片处理软件”。
《光影魔术手》便开始逐渐在王寅那台PⅡ300电脑上萌芽,随后经不断完善成为今天我们看到的模样。
软件编写三步走
中国有句古话,“艰难困苦,玉汝于成”。王寅正是在这样的环境下一个人独立完成的架构和开发。
那台Windows 98的老“坦克”成为王寅的工作站,“所有的代码都在这上面写的”。王寅激动地说:“缓慢的运行环境反而令我更注重代码效率和兼容性;编译之前每次我都会谨慎地复查代码逻辑,避免出错浪费时间……”
头悬梁,锥刺股般的精神“折磨”着王寅,一般人看来痛苦的环境让王寅习惯了三步走的开发习惯。
第一步以能够实现功能为目的写出代码原型。第二步加入大量容错代码,确保软件在各类极端情况不会出错。第三步则是优化代码,提高运行效率,在保证可读性的基础上整理代码结构,例如避免除法运算,减少浮点运算等。
严谨的编码作风让《光影魔术手》非常健壮,能够应付各种复杂的操作环境。而众所周知一款数码图形处理软件的技术实力就体现在它的算法能力上。
拼的就是创造力
写《光影魔术手》之初,王寅对图形编程的掌握非常初级,按他自己的说法,基本上只是把某个区域的图像拷贝到另一个区域,对图形学算法并没有很深的造诣。
一个偶然的机会,网上一个老外对自己代码中20多个图像处理函数的吹嘘刺激了王寅。对老外的吹嘘,王寅非常不服气,但只能用事实让老外闭嘴。
这就不得不提到《光影魔术手》的反转片功能。此功能完全靠一系列数学模型演算生成。一般的软件进行反转片处理后,色彩和对比度虽然有了改善,但数码相片的暗部细节也随之破坏,照片宽容度也比原来变小。如果照片上还出现过渡色,情况会更糟。例如浅红向深红过渡这种情况,红色还原是反转算法中比较难的问题,大部分软件都会出现色块问题。
王寅透露:“其实这几个问题都和暗部补偿的算法有关系,我一直想设计一个完善的公式解决它,但苦思许久没有答案。”为了反转片的算法,王寅断断续续试验了大约有几个月,有时深夜迷迷糊糊地睡着后又突然醒来,接着工作,为了这个功能测试过的代码有上万行,但却一直未能成功解决这个问题。
一次出游,王寅在飞机上看到无尽的云海,忽然脑子里闪过一个念头,一下飞机,他经过几个小时的工作,只用了几十行代码居然就把暗部补偿问题完美地解决了,而此前几个月上万行的测试代码都作废了。
《光影魔术手》有许多优秀算法,王寅自豪的说:“全是我想出来的,大约95% 以上的代码,是在没有看任何资料的情况下,自己写出来的。”一款软件要不被竞争对手超越,只能通过创造力建立自己的技术门槛。
对于共享软件,王寅说:“有一次和一群喜爱编程的人讨论,对于图像编程,什么因素是最重要的?虽然大家说了很多,五花八门,但我觉得,最重要的还是想象力,这是毫无疑问的。”
商业化到国际化的诱惑
完善的功能,让《光影魔术手》顺利地拥有了巨量的“粉丝”。用户数量的增长,让王寅决定把《光影魔术手》的免费模式改成类似捐助的共享模式。
虽然共享后,即使不注册,软件的功能也没有任何限制,只是会出现提示框提醒用户注册。王寅说:“这是一个介于免费与共享之间的软件,一个软件要做好,必须要进行商业化。”
王寅透露,以前我曾经考虑过开放代码,不过后来许多其他软件把优秀的算法借用过去改进后并没有反馈给我,所以后来我改变了主意,“一个软件必须要以某种共享的形式存在才能更健康地发展。”
对于商业化,王寅想先占市场,“我觉得占有一定市场之后,商业化是水到渠成的事。”于是他坚信:“随着软件的改进和完善,越来越多的公司对它有兴趣了。”
谈到目前国内共享软件的“吃饭”问题,王寅觉得“目前共享软件作者的经济水平太低了,所以不得不‘自私’一点”。在与优化大师、Photocap等软件作者交流后,王寅打算在海外先尝试做商业化,他说:“欧美的用户市场比较成熟。”不过唯一的困难就是“欧美用户的习惯和国内不太一样”。
而到底采用什么方式才能让《光影魔术手》既能很好地商业化、国际化,又不会伤害用户的感情呢?这的确是一个两难的问题,也是王寅继续要走的路。虽然现在《光影魔术手》并不赚钱,但是王寅表示:“我最大的愿望是有人喜欢用我的软件。如果有几千万用户,我就乐坏了”。