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

Crear ayuda HTML para programa con JavaFX Swing

En este post veremos como crear una aplicación de ayuda al usuario similar al extinto javahelp. Pero en esta oportunidad[...]

Tres cursos de programación de la Universidad de Stanford

La Universidad Leland Stanford Junior, conocida mundialmente como la Universidad Stanford, es una universidad privada es[...]

Personlizar JTable: Header Table con iconos

En este post mostramos como personalizar el Header (encabezado) de un componente JTable en Java colocando iconos, centra[...]

Aprende a usar transacciones con Laravel

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a[...]

iFrame Injection – Ocultar código malicioso

En ocasiones los administradores de sitios web experimentan problemas de lentitud en su carga o en el peor de los casos[...]

iReport: Reportes con imágenes de la base de datos

Este post esta dedicado a la creación de reportes con imágenes usando el programa iReport Designer. Cuando se desarrolla[...]