Java offre ai programmatori molti modi per manipolare l'input dell'utente , se tale ingresso si presenta in forma di testo o di immagine . Questo perché la struttura object-oriented di Java contiene molti metodi per consentire di gestire diversi tipi di input , e di utilizzare metodi per eseguire le operazioni più comuni . Ad esempio, utilizzando l'oggetto BufferedImage in un applet Java , è possibile estrarre le informazioni sui colori da una foto, e controllare ogni pixel per certi colori , cambiando il colore in determinate circostanze. Cose che ti serviranno
Java Development Kit ( JDK ) economici Mostra più istruzioni
1
creare un oggetto immagine e memorizzare l'immagine , come segue :
< p > import javax.imageio.ImageIO ; import java.awt.image.BufferedImage ;
classe
SwitchColors {
public static void main (String [] args ) {
BufferedImage foto = ImageIO.read ( new File ( " example.jpg ")); } }
2
carico un array con tutte le informazioni cromatiche in esso , come segue :
int [ ] rgb_data = new int [ ( picture.getWidth ( ) * picture.getHeight ( ) ) ] ; rgb_data picture.getRGB = ( 0 , 0 , picture.getWidth ( ) , picture.getHeight , rgb_data , 0 , 0 ) ;
3
correre attraverso ogni pixel e cambiare il colore in base a un caso come segue :
for (int i = 0 ; i < rgb_data.length ; i + + ) { int p = rgb_data [ i] ; int alpha = (pixel & 0xff000000 ) >> 24; int r = (pixel & 0x00ff0000 ) >> 16 ; int g = (pixel & 0x0000ff00 ) >> 8; int b = (pixel & 0x000000FF ) ; Cambia
( args [ 0 ] ) { //primo argomento di principale rappresenteranno un colore switchcase 1 : verde + = 8; rosso + = 16; blu + = 128 $ messaggio = 2 : verde + = 96; rosso + = 24; blu + = 64; messaggio = 3 : verde + = 160; rosso + = 32; blu + = 64 : $ messaggio = 4: verde + = 32; rosso + = 4; blu + = 16; break; }
rgbData [ i] = ( alpha << 24 ) + (rosso << , 16) + ( verde << 8) + blu ;