Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Procesamiento de imágenes en java con ImageMagick

Procesamiento de imágenes en java con ImageMagick

Por 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

Artículos similares

Client REST usando GSON y Volley

En este post crearemos un cliente android para consumir un recurso de un REST API utilizando las librerías GSON y Volley[...]

Canva: Herramienta de creación de infografías online

¿Que es una infografia? «Una infografía es una representación visual informativa o diagrama de textos escritos que en ci[...]

Rompecabezas evangelión de Rei Ayanami

Información sobre la serie: Neon Genesis Evangelion (新世紀エヴァンゲリオン, también conocido como «Evangelion») es una serie de an[...]

Crea y comparte diagramas de base de datos online

En este post les comparto una plataforma en línea diseñada para crear y compartir diagramas de flujo completamente grati[...]

Descargar video de TikTok sin marca de agua

TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de[...]

JTree Recursivo

En un post anterior se vio como llenar un JTree en donde se conocía de antemano que estructura iba a tener esta sin emba[...]