Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Procesamiento de imágenes en java con ImageMagick

Procesamiento de imágenes en java con ImageMagick

Autor jc mouse lunes, agosto 26, 2019

im4java es una interfaz pura de Java para la línea de comandos de ImageMagick. La interfaz de la línea de comandos de IM es bastante estable, por lo que su programa Java (y la biblioteca im4java) funcionarán en muchas versiones de IM. im4java también proporciona una mejor interfaz OO (el “lenguaje” de la línea de comando IM con su notación de operación de posfijo se traduce muy fácilmente en notación OO).

Algunas de sus características son:

  • Admite la mayoría de los comandos de ImageMagick
  • Permite la reutilizacion de una línea de comando varias veces para diferentes conjuntos de imágenes.
  • Las opciones y operadores se traducen en nombres de métodos similares que ImageMagick.
  • Compatibilidad con BufferedImage, es decir, puede usar BufferedImages como entrada a los comandos IM y salida de los comandos IM a una imagen Buffered.
  • Soporta GraphicsMagick, jpegtran, ufraw, exiftool, dcraw
  • Procesamiento paralelo de múltiples imágenes de entrada

im4java se encuentra con licencia LGPL.

Para obtener más detalles sobre el proyecto, visite la página http://im4java.sourceforge.net/

DESCARGA

Puede descargar la ultima versión en https://sourceforge.net/projects/im4java/files/

EJEMPLO

A continuación implementamos un ejemplo paso a paso del uso de im4java con el IDE Netbeans, java 8 y el Sistema Operativo Linux. Se aplicaran sobre una imagen algunos comandos de ImageMagick para aplicar el efecto Polaroid.

Paso 1. 

Crear un proyecto en Netbans “Example Imagemagick” y agregar el *.jar im4java tal cual se muestra en la siguiente imagen:

im4java ejemplo

Paso 2.

Buscar una imagen a procesar y colocarla en la base del proyecto.

sagiri cosplay

Paso 3.

Para usar im4java se necesitan objetos de dos clases: Un ImageCommand como ConvertCmd y una Operación como IMOperation. El ImageCommand es más o menos estático, crearía una instancia una vez y la reutilizaría durante la vida útil de su programa. Las excepciones a esta regla son los casos de uso más avanzados. Por el contrario, la Operación es el objeto de ajuste de todas las opciones de línea de comandos que tiene la intención de pasar al comando dado.

En la clase Main.java pega el siguiente código y ejecuta

import java.io.IOException;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Main {

    public static void main(String[] args) {
        try{
            // Se crea comando
            ConvertCmd cmd = new ConvertCmd();

            // Se crea operacion
            IMOperation op = new IMOperation();
            //archivo origen
            op.addImage("sagiri_izumi.png");
            op.bordercolor("snow");
            op.background("gray");        
            op.polaroid(5.0);            
            //imagen de destino
            op.addImage("sagiri.png"); 
        
            // Ejecuta operacion
            cmd.run(op);
            System.out.println("FIN");
        }catch( IOException| InterruptedException| IM4JavaException ex){
            System.err.println(ex.getMessage());
        }
    }

}

Si no obtuvimos ningún problema, se creara un nuevo archivo de imagen con las operaciones indicadas.

ClariS Polaroid efecto

enjoy!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Uso de BorderPane

Uso de BorderPane

BorderPane es un layout que distribuye los nodos hijos en 5 posiciones TOP, LEFT, BOTTOM, RIGHT y CENTER Los nodos hijos...

Uso de Tile Map en LibGDX

Uso de Tile Map en LibGDX

En esta ocasión vemos un ejemplo sencillo de como usar Tile Map en nuestros juegos android con la librería LibGDX utiliz...

Capturar foto desde una webcam con Java Media Framework

Capturar foto desde una webcam con Java Media Framework

Como se vio en un post anterior (Capturar video de una webcam con JMF) la captura de un video desde una webcam utilizand...

JTable con JCheckBox y celdas NULL

JTable con JCheckBox y celdas NULL

Me llego la siguiente duda por facebook que me pareció interesante: “Se quiere desarrollar una tabla en java que h...

Imprimir imagen con Print

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, e...

Store Procedure: Result Set

Store Procedure: Result Set

Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los R...

Comparte lo que sabes

Categorias

Últimas entradas

Acierta los colores o Adivina los colores es un sencillo juego que consiste en que dado 6 colores “rojo”,...

“MyBatis es una herramienta de persistencia Java que se encarga de mapear sentencias SQL y procedimientos almacena...

MyBatis es un framework de persistencia Java que se encarga de mapear sentencias SQL y procedimientos almacenados a part...

Webcam Capture es un API  que permite usar una cámara web incorporada o externa directamente desde código Java utilizand...

Herramientas

Generador de Enlaces a Whatsapp