Requisito previo: procesamiento de imágenes en Java: lectura y escritura
En este conjunto, aprenderemos sobre los píxeles de las imágenes, cómo podemos obtener los valores de píxeles de una imagen y cómo establecer los valores de píxeles en una imagen utilizando el lenguaje de programación Java. Los píxeles son la unidad más pequeña de una imagen que consta de cuatro componentes Alfa (medida de transparencia), rojo, verde, azul y, en resumen, (ARGB). El valor de todos los componentes se encuentra entre 0 y 255, ambos inclusive. Cero significa que el componente está ausente y 255 representa que el componente está totalmente presente.
Nota: dado que 2 8 = 256 y el valor de los componentes de píxeles se encuentran entre 0 y 255, solo necesitamos 8 bits para almacenar los valores.
Entonces, la cantidad total de bits necesarios para almacenar los valores ARGB es 8*4 = 32 bits o 4 bytes. Como indica el orden, Alpha adquiere los 8 bits más a la izquierda. El azul adquiere los 8 bits más a la derecha.
Por lo tanto, la posición del bit:
- Para el componente azul siendo 7-0,
- Para el componente verde siendo 15-8,
- Para el componente rojo siendo 23-16,
- Para el componente alfa siendo 31-24,
Representación pictórica de índices:
Ejemplo:
Java
// Java program to demonstrate get // and set pixel values of an image import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class GetSetPixels { public static void main(String args[]) throws IOException { BufferedImage img = null; File f = null; // read image try { f = new File( "C:/Users/hp/Desktop/Image Processing in Java/gfg-logo.png"); img = ImageIO.read(f); } catch (IOException e) { System.out.println(e); } // get image width and height int width = img.getWidth(); int height = img.getHeight(); // Since, Inp.jpg is a single pixel image so, we // will not be using the width and height variable // get pixel value (the arguments in the getRGB // method denotes the coordinates of the image from // which the pixel values need to be extracted) int p = img.getRGB(0, 0); // We, have seen that the components of pixel occupy // 8 bits. To get the bits we have to first right // shift the 32 bits of the pixels by bit // position(such as 24 in case of alpha) and then // bitwise ADD it with 0xFF. 0xFF is the hexadecimal // representation of the decimal value 255. // get alpha int a = (p >> 24) & 0xff; // get red int r = (p >> 16) & 0xff; // get green int g = (p >> 8) & 0xff; // get blue int a = p & 0xff; // for simplicity we will set the ARGB // value to 255, 100, 150 and 200 respectively. a = 255; r = 100; g = 150; b = 200; // set the pixel value p = (a << 24) | (r << 16) | (g << 8) | b; img.setRGB(0, 0, p); // write image try { f = new File( "C:/Users/hp/Desktop/Image Processing in Java/GFG.png"); ImageIO.write(img, "png", f); } catch (IOException e) { System.out.println(e); } } }
Producción –
Nota : este código no se ejecutará en el IDE en línea, ya que necesita una imagen en el disco.
Este artículo es una contribución de Pratik Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA