Witam , nie wiem czemu wyświetlane wartości RGB to 0,0,0 . Wszystko napisane dobrze. Mam nadzieje że wkleiłem wystarczająco dużo kodu.
Klasa główna - okienko z textfieldem do wpisania ścieżki i przyciskiem uruchamiającym nowe okno z obrazkiem...
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source==button)
NoweOkno okienko = new NoweOkno();
okienko.setSize(Toolkit.getDefaultToolkit().getScreenSize());
okienko.setResizable(true);
setTitle("Obrazek do zebrania wartosci rgb");
LObrazek = new JLabel(new ImageIcon(sciezka.getText()));
okienko.add(LObrazek);
okienko.setVisible(true); //to musi być na końcu
System.out.println(sciezka);
String text = sciezka.getText();
File plik = new File(text);
BufferedImage obrazek = null;
try {
obrazek = ImageIO.read(plik);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("Wartosc wynosi "+obrazek.getRGB(0, 0));
int rgb=obrazek.getRGB(0, 0)&0xffffff; // żeby obciąć alpha i pozbyć się minusa
int r=(rgb>>16)&0xff;
int g=(rgb>>8)&0xff;
int b=rgb&0xff;
System.out.println (r);
System.out.println (g);
System.out.println (b);
Color color = new Color(obrazek.getRGB(150,200));
System.out.println("Wartosc R wynosi "+color.getRed());
System.out.println("Wartosc G wynosi "+color.getGreen());
System.out.println("Wartosc B wynosi "+color.getBlue());
druga klasa
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class NoweOkno extends JFrame implements ActionListener{
JLabel LObrazek;
public NoweOkno()
{
this.setSize(Toolkit.getDefaultToolkit().getScreenSize());
this.setResizable(true);
setTitle("miniPhotoShop");
setLayout(null);
setTitle("Obrazek do zebrania wartosci rgb");
setVisible(true);
LObrazek = new JLabel(new ImageIcon(OknoZaladuj.sciezka.getText()));
LObrazek.setSize(Toolkit.getDefaultToolkit().getScreenSize());
add(LObrazek);
System.out.println(OknoZaladuj.sciezka);
}
public static void main(String[] args) {
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
Co poprawić ?
bo eclipse nie wykazuje żadnych błędów wszystko się ładnie wyświetla. Brałem trochę kodu z innego tematu na tym forum RGB na R,G,B , ale u mnie to nie działa.
Z góry dzięki za pomoc.