prima c'era un errore nel codice,cmq invece di ottenere l'immagine desiderata a video non ottengo l'immagine di pertenza come mai?
import com.pearsoneduc.ip.op.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
import java.awt.color.ColorSpace;
/*
Un oggetto di questa classe e' una canvas contenente un'immagine,
che puo' compiere l'azione di invertire i colori dell'immagine
contenuta.
Il main associato alla classe crea un frame con dentro una di
queste canvas e un bottone. Quando l'utente preme il bottone
la canvas inverte i colori della sua immagine.
*/
class Esempio4 extends Canvas implements ActionListener
{
/* immagine contenuta */
BufferedImage img1;
BufferedImage img2;
BufferedImage ret;
/* creatore, carica l'immagine dal file che e' passato come argomento */
public Esempio4(String imageFile1,String imageFile2)
{
try
{
img1 = ImageIO.read(new File(imageFile1));
img2 = ImageIO.read(new File(imageFile2));
}
catch (IOException e) {};
}
public Dimension getPreferredSize()
{
int width = img1.getWidth(this);
int height = img1.getHeight(this);
return new Dimension(width,height);
}
public void paint(Graphics g)
{
g.drawImage(img1,0,0,this);
}
/* reagisce invertendo i colori dell'immagine e ridisegnandola */
public void actionPerformed(ActionEvent ev)
{
try{
img1 = new BufferedImage(img1.getWidth(), img1.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
for (int i = 0; i < img1.getWidth(); i++) {
for (int j = 0; j < img1.getHeight(); j++) {
if(img2.getRGB(i, j)>0.9){
img1.setRGB(i, j, img1.getRGB(i, j));
}
else{
img1.setRGB(i, j, 0);
}
}
}
}
catch(Exception e){System.out.println("eccezione");
}
}
/* main di esempio */
public static void main(String[] args)
{
Esempio4 es = new Esempio4("filtro16(20-50).jpg","16.jpg");
Frame f = new Frame("Esempio1");
f.setLayout( new BorderLayout() );
f.add(BorderLayout.CENTER,es);
Button b = new Button("fft");
f.add(BorderLayout.SOUTH,b);
b.addActionListener(es);
f.pack();
f.setVisible(true);
}
}
![]()