gimp号称linux下的ps,当然他也有windows版本。此软件的工作几乎全是靠插件来完成的,自身仅提供通讯功能以支持插件。并且他有很多很有意思的插件,比如图像补全插件resynthesizer,大家可以自行尝试。
今天这篇文章半是翻译,半是转载吧。其实在windows下编译gimp插件并不是很难。首先要做的是配置好gtk。
gtk的配置请见http://twyok.blog.163.com/blog/static/81229303201231491744674/,文章写得很清除,不过有一个小小的改进,对于别的版本的gtk,进入bin目录,在命令行下输入pkg-config.exe --cflags gtk+-2.0和pkg-config.exe --libs gtk+-2.0,然后会出现
Files/gtk/include/gtk-2.0 -mms-bitfields Files/gtk/lib/gtk-2.0/include Files/gtk
/include/atk-1.0 Files/gtk/include/cairo Files/gtk/include/gdk-pixbuf-2.0 Files/
gtk/include/pango-1.0 Files/gtk/include/glib-2.0 Files/gtk/lib/glib-2.0/include
Files/gtk/include Files/gtk/include/freetype2 Files/gtk/include/libpng14 -IE:/Pr
ogram
和
Files/gtk/lib -LE:/Program -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -
lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -l
gobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
照着这个配置就行。上面是include,下面是lib。
然后,把上面那篇博客的示例运行成功后,请转到下面的文章,是个英文教程,不过写的很清楚,http://registry.gimp.org/node/24883。
为防止有人看不懂,我大致说明一下。
1,把gimp源码中的def全部提取出来,然后重命名以适应dll文件。
2,进入vs的命令行(不是cmd),对于每个def,运行lib /def:whatever.def /out:whatever.lib /machine:x86
。
3,把def生成的lib和gimp源码里的dll全部都放在一个文件夹里,添加这些lib到vs的项目里。
4,属性--链接器--系统--子系统,选择窗口,属性--生成事件--后期生成事件--copy "$(TargetPath)" "$(USERPROFILE)\Desktop\",这个是把生成的exe提取到桌面来。然后你可以手动把它放入$(USERPROFILE)\
.gimp-2.x\plugins\里。
5,不要忘了先include进gimp的源码。
6,记得要把cpp的后缀名改为c或cc。博客里推荐这么做。
大致就是这样,然后你就可以自己给gimp写插件了。
最后,吐槽一下ubuntu下的eclipse。我把文件都配置好了以后,eclipse竟然还是给我报错……后来把cpp改成c或cc就不报错了。ubuntu下的eclipse做的一点都不人性化,还是vs好。