¿Cómo tomo un archivo de imagen y lo convierto en un ráster y luego accedo a sus datos (valores RBG) píxel por píxel?¿Cómo tomo un archivo de imagen y lo convierto en un ráster y luego accedo a sus datos?
Respuesta
BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);
Color c = new Color(rgb);
Ahora puede utilizar Color.getRed(), getGreen(), GetBlue() y getAlpha() para obtener los diferentes valores
Uso ImageIO.read
para leer el archivo de imagen en un BufferedImage
, y luego use uno de los métodos getData
para obtener Raster
de la imagen. Y allí, encontrará métodos para obtener datos de píxeles.
BufferedImage image = ImageIO.read(new File(myFilename));
int pixel = image.getRGB(0, 0); // Top left pixel.
// Access the color components, valued 0-255.
int alpha = (pixel >>> 24) & 0xff; // If applicable to image format.
int r = (pixel >>> 16) & 0xff;
int g = (pixel >>> 8) & 0xff;
int b = pixel & 0xff;
[Editar] Tenga en cuenta que la respuesta de @ Sibbo es correcta y convenientemente utiliza el Color
class color accessor methods; sin embargo, la extracción de los colores directamente a través de la manipulación de bits como lo he demostrado probablemente será considerablemente más rápida, ya que evita la sobrecarga de las llamadas al constructor repetidas.
No utilice los valores RGB después de que completó convertir la imagen en una trama utilizar los raster .getData
método
Utilice esta:
Image img.getRGB(x, y);
Color c = new Color(rgb);
- 1. ¿Cómo firmar un archivo y luego verificarlo?
- 2. Cómo tomo un ByteArrayInputStream y guardo su contenido como un archivo en el sistema de archivos
- 3. ¿Cómo convierto una matriz de bytes en un archivo y lo abro automáticamente con C#?
- 4. Cómo accedo a un archivo compartido programáticamente
- 5. ¿Cómo accedo a un archivo Silverlight XAP en un dominio?
- 6. ¿Cómo convierto una matriz numpy a (y visualizo) una imagen?
- 7. ¿Cómo crear un archivo ZIP usando PHP y eliminarlo luego de que el usuario lo descargue?
- 8. ¿Cómo accedo a un archivo de configuración dentro del contenedor?
- 9. Base64 codifica el archivo cargado y luego lo guarda en la base de datos
- 10. Python: enumere todos los nombres de archivo en un directorio y sus subdirectorios y luego imprima los resultados en un archivo de texto
- 11. Cómo reemplazar NA's en un objeto ráster
- 12. ¿Cómo puedo colocar una imagen en un contenedor y luego actualizar el contenedor según lo que se le cayó?
- 13. ¿Cómo convierto programáticamente un archivo Keynote a PowerPoint?
- 14. ¿Cómo crear un archivo y sus directorios principales en una llamada a un método?
- 15. Obtener imagen remota usando cURL y luego volver a muestrear
- 16. Cómo convierto un archivo plano de datos en una fuente de datos consultables
- 17. ¿Cómo aproximar un contorno vectorial desde un ráster de elevación?
- 18. ¿Cómo tomo una serie de cadenas y las filtro?
- 19. Cómo convierto mi repositorio de Git a Mercurial y traigo sus etiquetas
- 20. Cómo convierto un BasicHttpBinding a un CustomBinding
- 21. ¿Cómo convierto un conjunto de PHP en $ keys y $ values?
- 22. ¿Cómo aplicar un estilo a una clase y sus descendientes?
- 23. ¿Cómo accedo a un iframe de CasperJS?
- 24. Cómo se almacenan los datos en un archivo de imagen
- 25. ¿Cómo accedo a Locale desde un JSP?
- 26. ¿Cómo accedo a ModelState desde un ActionFilter?
- 27. Usando los comandos de Windows/dos shell/batch, ¿cómo tomo un archivo y solo guardo líneas únicas?
- 28. ¿Cómo convierto un byte a un largo en Java?
- 29. Ember.js: ¿Cómo accedo a un elemento específico en un CollectionView?
- 30. ¿Cómo convierto un Color a un Pincel en XAML?
int r = (píxel >>> 16) & 0xff; int g = (pixel >>> 8) & 0xff; int b = pixel & 0xff; ¿Qué hacen estas líneas de código? y qué es el & opereator o el 0xff significa – lancegerday
@lancegerday: esas líneas extraen los valores de color individuales (r, g, b, a) del [valor de píxel compuesto de RGBA] (http://en.wikipedia.org/wiki/RGBA_color_space) para que pueda inspeccionarlos fácilmente individualmente como valores entre 0 y 255. – maerics