2011-05-05 63 views
1

我使用opencv进行了一段时间的Android编程。现在我看到gimp库更强大了。所以,我可以从哪里学习gimp的起点。 我也想知道gimp插件的基本概念。在过去,我使用C API来打开cv;我应该如何编写android的代码? 另外,我需要在Windows中安装哪些软件包才能开始使用gimp?是否可以使用Android应用程序中的GIMP图像功能?

回答

2

虽然GIMP DOWS有执行一些图像处理一些独立的图书馆,大部分图像处理或者通过GIMP核心程序或者通过GIMP的插件来完成。这两种方法都需要安装并运行整个程序(尽管不一定使用显示器)。

我对Andorid progmaing一无所知,不知道如何在C中安装普通的本机代码并从Android应用程序中调用它 - 如果您非常熟悉它,那么您可能有机会尝试。然而,GIMP本身依赖于广泛的图书馆生态系统,包括但不限于glib,gtk +,cairo,pango,gegl - 而每一个都可能有其他先决条件。由于Windows不必authomatically安装这些各种库的库和头文件,而这些本身在Windows上工作,但他们每个人的代码是多平台,可以在Windows和其他奥赛斯运行工作包管理器,是很辛苦。对于为Windows构建GIMP的人来说,他们自己很难在Linux环境中这样做,因为他们将GIMP与Windows交叉编译。

如果你在Android的Linux内核周围使用GNU生态系统,而不仅仅是裸露的Android环境,那么让所有这些库在Android上工作可能并不困难(我对android甚至不知道是否足够了解这是可能的)。

所有的一切:这将是虽然你,并要求一大堆的研究。

一个GIMP的库中,GEGL(通用图形库)已经少了很多prerequistes,并且可以作为一个普通的图书馆。我认为你可以用glib和Babl作为先决条件来构建它。这个库将取代当前的GIMP核心,并重新实现大多数现有插件的操作 - 因此对您来说可能已经足够了。
如果你可以从Android系统的份额得到GEGL运行和使用,与世界--IT是,在itelsef,一个项目的价值准则的谷歌暑期项目的。 (而且,将GIMP代码作为其他应用程序的库来使用,其容量将会比使用GIMP代码容易一个数量级。

最后 - 如果你想只是一对夫妇的GIMP的效果,如果效果作为一个插件在GIMP中实现,插件的代码是相当简单的。所以,尽管这将是很难进去的Android全GIMP环境,复制,实际上从GIMP的源代码树进行像素处理以及将它们应用内的Java方法来工作不会很难的功能。请记住在这种情况下遵守许可证:GIMP的插件代码在GPLv3下。 (该GEGL库只是LGPL)

总之:不,你不能使用GIMP的“库”,为本地代码从一个Android应用程序 - 如果你可以用OpenCV的,你有能够很好的机会改为使用GEGL。只有使用某些插件的算法来操纵应用中的像素会更容易。

但是,如果您的应用程序允许将图像处理委托给基于Internet的服务器,请设置HTTP应用程序以接收图像,使用GIMP来处理它,然后将其传回是一件简单的事情。

(所以,你不能适用于实时效果,但将允许一到,例如,拍摄照片,选择了一系列从菜单特效,并将其发送到处理服务器)

+0

对于OpenCV,我使用JNI调用本机代码并在Android中使用它。 GIMP不可能做到这一点吗?我知道像PicSay和FotoFunia这样的应用程序使用GIMP库。从你的答案我可以看出,GEGL是一个很好的选择。我需要在Windows中运行哪个环境来运行GEGL库? – Sayak 2011-05-05 03:11:19

+0

我对GEGL的看法是,它支持非破坏性的图像处理。我可以制作像索贝尔这样的简单图像效果吗?有没有可能使用GEGL中的图像图层?因为我不能在OpenCV中创建一个透明图层,所以从OpenCV变成了整个点。 – Sayak 2011-05-05 03:46:29

+0

Intresting ..如果有应用程序在andorid中使用GIMP的库,那么也许这是直接的Linxu构建工作。要使用任何GIMP库(包括Windows中的GEGL),只需要安装该应用程序(使用GIMP窗口安装程序)并从源代码焦油球中获取.h文件以包含在应用程序中。 – jsbueno 2011-05-05 04:02:11

1

加载画笔时,GIMP使用相当多的内存。如果删除所有无用的插件,并从源代码构建它。您可能能够正常工作,但必须将所有链接库直接构建到可执行文件中。

换句话说;将链接库作为静态构建直接构建到代码中。以这种方式,事情可能会正常工作,除非其中一个链接库调用另一个链接库。

让库本身在OS上工作可能会为其他程序提供使用它们的机会。此外,GTK +(GIMP工具包),GIMP的界面也相当臃肿和丑陋。

如果一切都失败了,你只需要用你正在寻找的功能(级别,曲线,克隆工具,闪避和刻录等)的功能来解决一个较小的程序。层也是不错,但编辑一个大百万像素的图像开始消耗内存相当快,大多数Android设备没有交换分区。

相关问题