devo visualizzare un immagine più volte; è come se devo realizzare un ciclo for che per un opportuno intervallo di tempo ridisegna a video la stessa immagine?come si può fare?
devo visualizzare un immagine più volte; è come se devo realizzare un ciclo for che per un opportuno intervallo di tempo ridisegna a video la stessa immagine?come si può fare?
ma dove su un jPanel ?
e la devi disegnare (quindi si parla del metodo draw e paint) o solo visualizzare un'immagine presente su file system ?
in quel caso si potrebbe caricarla normalmente come immagine e ogni tot secondi far riaggiornare il panel principale.
odio chi parla di politica..
anzi vorrei fondare un partito contro tutto ciò
ma come devo fare a riaggiornare dopo tot tempo?io sto usando il seguente codice
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;
public class Contrasto1 extends Canvas implements ActionListener
{
/* immagine contenuta */
BufferedImage img1;
BufferedImage img2;
BufferedImage outputimage;
WritableRaster output;
WritableRaster imput1;
WritableRaster imput2;
int i;
int j;
double value1;
double value2;
/* creatore, carica l'immagine dal file che e' passato come argomento */
public Contrasto1(String imageFile1,String imageFile2)
{
try
{
img1 = ImageIO.read(new File(imageFile1));
img2 = ImageIO.read(new File(imageFile2));
//Rafal santos
outputimage = new BufferedImage(img2.getWidth(), img2.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
imput1=img1.copyData(null);
imput2=img2.copyData(null);
output=outputimage.getRaster();
}
catch (Exception e) {};
}
public Dimension getPreferredSize()
{
int width = img2.getWidth(this);
int height = img2.getHeight(this);
return new Dimension(width,height);
}
public void paint(Graphics g)
{
g.drawImage(outputimage,0,0,this);
}
public void actionPerformed(ActionEvent ev)
{
try{
for ( i = 0; i < (img1.getWidth()); i++) {
for ( j = 0; j < (img1.getHeight()); j++) {
value1=imput1.getSample(i,j,0);
value2=imput2.getSample(i,j,0);
double valore=value1+value2;
output.setSample(i,j,0,valore);
}
}
for(int y=0; y<100; y++){
repaint();
}
}
//System.out.println(valore);
//ImageIO.write(outputimage,"jpg",new File("sogliaprova2.jpg"));
catch(Exception e){System.out.println("eccezione");
}
}
/* main di esempio */
public static void main(String[] args)
{
Contrasto1 es = new Contrasto1("Immagineoriginale.jpg","PN16-16.jpg");
Frame f = new Frame("Esempio1");
f.setLayout( new BorderLayout() );
Button b = new Button("fft");
f.add(BorderLayout.SOUTH,b);
for(int y=0; y<100; y++){
f.add(BorderLayout.CENTER,es);
b.addActionListener(es);
f.setVisible(true);
f.pack();
}
}
}