Czemu wartości pikseli RGB za każdym razem to 0,0,0

Czemu wartości pikseli RGB za każdym razem to 0,0,0
Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

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...

Kopiuj
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

Kopiuj
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.

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Wyświetlasz raptem dwa piksele: (0,0) i (150,200). Może one akurat są czarne.

Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

Słuszna uwaga. działa jednak wszystko :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.