¿Es posible utilizar las capacidades de imagen de GIMP de una aplicación Android?

StackOverflow https://stackoverflow.com/questions/5891978

  •  28-10-2019
  •  | 
  •  

Pregunta

Estuve usando OpenCV durante algún tiempo para programar en Android, y ahora veo que la biblioteca GIMP es mucho más fuerte. ¿Dónde puedo encontrar un punto de partida para aprender GIMP? También quiero conocer los conceptos básicos detrás de los complementos GIMP. En el pasado, usé API C en OpenCV. ¿Cómo podría escribir el código para Android? Además, ¿qué paquetes necesito instalar en Windows para comenzar a usar GIMP?

¿Fue útil?

Solución

Aunque GIMP Dows tiene algunas bibliotecas independientes que realizan alguna manipulación de imágenes, la mayor parte de la manipulación de imágenes se realiza mediante el programa central de GIMP o mediante los complementos de GIMP. Ambos enfoques deben tener todo el programa instalado y en funcionamiento (aunque no necesariamente usan una pantalla).

No sé nada en la programación Andorid, y no se conude, ¿cómo se puede instalar el código nativo ordinario en C y llamarlo desde las aplicaciones de Android? Si está muy familiarizado con él, es posible que tenga la oportunidad en su intento.

Sin embargo, GIMP en sí se basa en un extenso ecosistema de bibliotecas, que incluyen, entre otros, GLIB, GTK+, El Cairo, Pango, GEGL, y cada uno de estos a su vez podría tener otros requisitos previos. Dado que Windows no tiene un administrador de paquetes de trabajo para instalar automáticamente bibliotecas y archivos de encabezado de estas diversas bibliotecas, trabajando con estas de forma nativa en Windows, aunque el código de cada uno de ellos es multiplataforma y puede ejecutarse en Windows y otros osos, IS, IS muy duro. Tan difícil que las personas que construyen GIMP para las ventanas mismas lo hacen en un entorno de Linux, desde donde compilan GIMP para Windows.

Hacer que todas estas bibliotecas funcionen en un Android probablemente no sea difícil si está utilizando el ecosistema GNU alrededor del núcleo Linux de Android, y no solo en el entorno de Android desnudo (no sé lo suficiente sobre Android para saber si eso es posible) .

En general: lo será para usted y exigirá mucha investigación.

Una de las bibliotecas de GIMP, la GEGL (Biblioteca Generic Graphics) tiene muchos menos requisitos previos y puede usarse como una biblioteca ordinaria. Creo que probablemente puedas construirlo con solo glib y babl como requisitos previos. Esta es la biblioteca que reemplazará el núcleo GIMP de la corriente y volverá a implementar las operaciones de la mayoría de los complementos existentes, por lo que podría ser suficiente para usted.
Si puede hacer que GEGL se ejecute y se pueda usar desde un sistema Android compartir eso con el mundo, en Itelsef, un proyecto de Google Summer of Code, sería un proyecto de Google Summer of Code. (Y aún así sería más fácil de un orden de magnitud que obtener el código GIMP allí para ser utilizado como biblioteca de otras aplicaciones).

Finalmente, si solo desea un par de efectos de GIMP, si el efecto se implementa como un complemento en GIMP, el código de los complementos es bastante sencillo. Por lo tanto, si bien sería difícil obtener todo el entorno GIMP dentro de Android, copiar las funciones que realmente realizan la manipulación de píxeles del árbol fuente de GIMP y convertirlos para trabajar en un método Java dentro de su aplicación no sería difícil. Solo recuerde cumplir con la licencia en este caso: el código de complementos de GIMP está bajo GPLV3. (La biblioteca GEGL es solo LGPL)

En breve: No, no puede usar las "bibliotecas" de GIMP como código nativo de una aplicación Android, si puede usar OpenCV, tiene una buena oportunidad de poder usar GEGL. Sería más fácil usar los algoritmos de ciertos complementos para manipular los píxeles en su aplicación.

Sin embargo, si su aplicación permitiera delegar el procesamiento de imágenes en un servidor basado en Internet, configurar una aplicación HTTP para recibir una imagen, usar GIMP para procesarlo y transmitirlo sería algo simple.

(Entonces, no puede aplicar efectos en tiempo real, pero permitiría que uno tome una foto, seleccione una serie de efectos de los menús y lo enviaría al servidor para su procesamiento)

Otros consejos

GIMP usa bastante memoria al cargar pinceles. Si deja caer todos los complementos inútiles y los construye desde la fuente. Es posible que pueda hacer que funcione, pero tendrá que construir todas las bibliotecas vinculadas directamente en el ejecutable.

En otras palabras; construir bibliotecas vinculadas directamente al código como una compilación estática. De esta manera, las cosas pueden funcionar correctamente a menos que una de esas bibliotecas vinculadas llame a otra biblioteca vinculada.

Hacer que las bibliotecas trabajen en el sistema operativo pueden proporcionar oportunidades de programas adicionales para usarlas. Además, GTK+ (kit de herramientas GIMP), la interfaz de GIMP también es bastante hinchada y fea.

Si todo lo demás falla, simplemente tendrá que conformarse con un programa más pequeño con las características que está buscando en la mosca (niveles, curvas, la herramienta clon, esquivar y quemar, etc.) Las capas también son agradables, pero la edición La imagen de megapíxeles AA AA comienza a comer memoria con bastante rapidez y la mayoría de los dispositivos Android no tienen una partición de intercambio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top