Come faccio a prendere un file immagine e convertirlo in un raster e quindi accedere ai suoi dati (valori RBG) pixel per pixel?Come posso prendere un file immagine e convertirlo in un raster e quindi accedere ai suoi dati?
risposta
BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);
Color c = new Color(rgb);
Ora è possibile utilizzare Color.getRed(), getGreen(), GetBlue() e getAlpha() per ottenere i diversi valori
Usa ImageIO.read
di leggere il file di immagine in un BufferedImage
, e quindi utilizzare uno dei metodi getData
per ottenere l'immagine Raster
. E qui, troverai metodi per ottenere i dati dei pixel.
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;
[Edit] noti che @ risposta di Sibbo è corretta e comoda utilizza il Color
class color accessor methods; tuttavia, l'estrazione dei colori direttamente tramite la manipolazione dei bit come è stato dimostrato sarà probabilmente molto più veloce poiché evita il sovraccarico delle ripetute chiamate del costruttore.
Non utilizzare i valori RGB dopo aver completato trasformare l'immagine in un raster utilizzare i raster .getData
metodo
Utilizzare questa:
Image img.getRGB(x, y);
Color c = new Color(rgb);
- 1. Analizzare un file YAML in Python e accedere ai dati?
- 2. Posso trasformare un oggetto e accedere ai membri dati privati in C++?
- 3. Come posso prendere in giro un OracleConnection e OracleCommand?
- 4. Come posso prendere tap su MapView e quindi passarlo ai riconoscitori di gesti predefiniti?
- 5. Come posso allegare un file immagine in e-mail?
- 6. Come combinare queste query MySQL e quindi accedere correttamente ai dati
- 7. pacchetto raster di immagine R - stampa raster senza sfondo e bordo e legenda
- 8. Come caricare un file JSON e convertirlo in un oggetto di un tipo specifico?
- 9. Come posso creare un mosaico raster usando l'elenco dei raster?
- 10. Come generare un file temporaneo in django e quindi distruggere
- 11. Esiste un modo standard per rappresentare un hash SHA1 come stringa C e come posso convertirlo?
- 12. Come accedere ai dati POST in PHP?
- 13. Come posso impostare un cookie e quindi reindirizzare in PHP?
- 14. Come accedere ai dati netstat in Python?
- 15. Mostra array come immagine raster in python
- 16. Lavorare con molti dati e molti raster in R?
- 17. Posso convertire un file .swf in un formato immagine?
- 18. Posso accedere ai DATI da uno script richiesto in Ruby?
- 19. come accedere ai dati di un d3 SVG Element
- 20. Come accedere ai dati. L'esercizio di lavoro
- 21. Come accedere e quindi scaricare un file da aspx web pages con R
- 22. Come posso prendere un 404?
- 23. Aggiungere un'immagine in mp3, e convertirlo in un file video utilizzando ffmpeg
- 24. Creare e scrivere su un file di testo in memoria e convertirlo in array di byte in una volta
- 25. Come posso generare file e quindi comprimere/comprimere con Heroku?
- 26. Come posso impostare un suggerimento su un JPanel e sui suoi figli?
- 27. Posso eliminare un repository GitHub e quindi passare il mio file CNAME in un altro repository?
- 28. come accedere ai dati interni di jquery?
- 29. Come posso modificare la risoluzione di un raster utilizzando GDAL?
- 30. Come accedere ai figli di un ItemsControl?
int r = (pixel >>> 16) & 0xff; int g = (pixel >>> 8) & 0xff; int b = pixel & 0xff; cosa fanno queste righe di codice? e qual è il & opereator o il 0xff significa – lancegerday
@lancegerday: quelle linee estraggono i singoli valori di colore (r, g, b, a) dal valore [pixel RGBA "composito] (http://en.wikipedia.org/wiki/RGBA_color_space) in modo che sia possibile ispezionarli individualmente come valori compresi tra 0 e 255. – maerics