Hacer transparente un color de una imagen en Java

Hacer transparente un color de una imagen en Java

Hace poco publiqué un artículo para hacer la rotación de una imagen en Java. Como consecuencia de hacer una rotación habrá zonas de la imagen que queden en negro puesto que aunque la imagen esté rotada seguirá estando encerrada dentro de un rectángulo. En este tutorial veremos como hacer transparente esa zona de negro.

Lo que necesitamos es que determinado color de una imagen se convierta en transparente. Hay que tener en cuenta que la zona de no datos de la imagen debe tener un color que no aparezca mucho en la imagen porque también se convertirá a transparente. Se suele usar o el negro o el blanco para esta tarea.

Para hacer transparente un color de una imagen en Java hay que tener en cuenta que el BufferedImage de destino ha de ser del tipo TYPE_INT_ARGB.

Luego lo que hemos de hacer es crear un objeto del tipo RGBImageFilter en el que sobreescribiremos el método filterRGB.

Lo que haremos será identificar el color que se quiere hacer como transparente y posteriormente el filtro comprobará cada pixel de la imagen y si coincide con la marca lo hará transparente.

Esto lo pueden poner dentro de una clase como la que les muestro a continuación, o también se podría haber hecho con un simple método estático.

Ahora cada vez que quieran hacer transparente un determinado color de una imagen dentro de su programa solo tendrán que hacer lo que se muestra a continuación.

Y si quieren guardar la imagen en formato PNG que es un formato de imagen que admite transparencia será algo tan sencillo como usar la clase ImageIO de Java.

Con esto quedaría todo resuelto y ya tienen una manera de hacer transparente un color de una imagen en Java.


Por mi parte no tengo nada más que mostraros en esta guía, solo espero que os haya sido de utilidad y digo lo mismo de siempre, si tenéis alguna duda no dudéis en dejar un comentario.


2 Comentarios

  1. Salvador

    Leí la publicación anterior sobre rotar imágenes, pero que pasaría si la imagen original, tuviera partes de color negros

    • Hola, si la imagen tiene colores negros también se harían transparentes. En cualquier caso, esto fue usado para fotografías, y en las fotografías no suele haber mucha cantidad de píxeles totalmente negros de manera que en el caso de que los hubiera prácticamente no sería apreciable a la vista.
      Pero si, tienes razón, si se quiere hacer transparente una imagen que contenga muchas zonas negras habría que pensar en otra forma.
      Un saludo!

Trackbacks/Pingbacks

  1. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: Hace poco publiqué un artículo para hacer la rotación de una imagen en Java.…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

A %d blogueros les gusta esto: