Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Colorare i pixel in java
Forum - Java - Colorare i pixel in java

Avatar
caste1982 (Normal User)
Newbie


Messaggi: 1
Iscritto: 19/05/2006

Segnala al moderatore
Postato alle 9:28
Venerdì, 19/05/2006
Ciao!! Devo fare un progetto e non so sviluppare un punto. In Pratica carico un'immagine su una jLabel  e con un JSlider devo variare le gradazioni di blu sull'immagine. Qui riporto il codice
import javax.swing.*;
import java.awt.*;
import com.borland.jbcl.layout.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.io.File;
import javax.imageio.*;
import java.awt.Image.*;
import java.awt.image.*;
import java.io.*;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.*;
import javax.swing.filechooser.*;


/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

public class Frame1 extends JFrame {
  XYLayout xYLayout1 = new XYLayout();
  JSlider jSlider1 = new JSlider( 0 ,255,0);
  JTextField jTextField1 = new JTextField();
  JLabel jLabel1 = new JLabel();
  JButton jButton1 = new JButton();
  JScrollPane jScrollPane1 = new JScrollPane(jLabel1);
BufferedImage immagine;
  Color c;


  public Frame1() {
    try {
      jbInit();
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }
  void jbInit() throws Exception {

    jSlider1.setMajorTickSpacing(10);
    jSlider1.setMinorTickSpacing(5);
    jSlider1.setPaintTicks(true);
    jSlider1.addChangeListener(new Frame1_jSlider1_changeAdapter(this));
    jSlider1.setPaintLabels(true);
    this.setTitle("Rilevamento ponti");
    this.getContentPane().setLayout(xYLayout1);
    this.setSize(1024,768);
    jLabel1.setBorder(BorderFactory.createLoweredBevelBorder());
    jButton1.setText("Inserire immagine");
    jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));


    jScrollPane1.setAutoscrolls(true);
    this.getContentPane().add(jScrollPane1,       new XYConstraints(15, 23, 627, 457));
    jScrollPane1.getViewport().add(jLabel1, null);
    this.getContentPane().add(jTextField1, new XYConstraints(16, 594, 33, 19));
    this.getContentPane().add(jSlider1,   new XYConstraints(13, 496, 630, 68));
    this.getContentPane().add(jButton1,  new XYConstraints(298, 610, -1, 22));
  }




  public static void main (String args[]){
    Frame1 f = new Frame1();
    f.setVisible(true);
  }


  public  class ENVIFilter  extends FileFilter{
     public boolean accept(File f){
       String str = f.getName().toLowerCase();
       return str.endsWith(".tiff")||f.isDirectory();
     }
     public String getDescription(){
       return "Immagine tiff";
     }
   }



  void jSlider1_stateChanged(ChangeEvent e) {
    try{
    String alfa = String.valueOf(jSlider1.getValue());
    jTextField1.setText(alfa);
    c= new Color(jSlider1.getValue());
    jTextField1.setSelectionColor(c);
int w = immagine.getHeight();
int h = immagine.getWidth();
int [] p = new int [w*h];
immagine.setRGB(0,0,w,h,p,0,w);
Graphics2D g2 = immagine.createGraphics();
g2.drawImage(immagine,0,0,w/2,h/3,0,0,w,h,this);
    MemoryImageSource mis = new MemoryImageSource(w,h,p,0,w);
    
    }
    catch(Exception ed){}
  }

  void jButton1_actionPerformed(ActionEvent e) {

    JFileChooser fc= new JFileChooser();
   fc.setAcceptAllFileFilterUsed(true);
   fc.setFileFilter(new ENVIFilter());
   int response= fc.showOpenDialog(this);
   if(response==JFileChooser.APPROVE_OPTION){
  File f = fc.getSelectedFile();
     try {

    BufferedImage buff = ImageIO.read(f);
    int w = buff.getWidth();
    int h = buff.getHeight();


    immagine = new BufferedImage(w,h, BufferedImage.TYPE_3BYTE_BGR);
    Graphics2D g2 = immagine.createGraphics();
    
    g2.drawImage(buff,0,0,null);
    g2.dispose();
    jLabel1.setIcon(new ImageIcon(immagine));
       repaint();
       }
  catch(Exception er) {}


   }

}




}

class Frame1_jSlider1_changeAdapter implements javax.swing.event.ChangeListener {
  Frame1 adaptee;

  Frame1_jSlider1_changeAdapter(Frame1 adaptee) {
    this.adaptee = adaptee;
  }
  public void stateChanged(ChangeEvent e) {
    adaptee.jSlider1_stateChanged(e);
  }
}

class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
  Frame1 adaptee;

  Frame1_jButton1_actionAdapter(Frame1 adaptee) {
    this.adaptee = adaptee;
  }
  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}

















---------------------------------------------------
Come si può correggere.. grazie mille



:(

PM Quote