Mengubah warna RGB dengan Java

Friday, January 25, 2013


Pada postingan kali ini, saya kan melanjutkan program mengenai pengolahan citra sebelumnya pengolahan citra dengan java , mengenai cara merubah warna RGB dengan Java..

Langsung saja implementasi programnya sebagai berikut :

1. Membuat Method Find Index


int [] findPixels(String p){
        List pos = new ArrayList();
        if(p.startsWith(">=")){
            String tmp=p.substring(2);
            int itmp=Integer.valueOf(tmp);
            for(int i = 0; i< pixels.length; i++){
                if((pixels[i] & 0x00FFFFFF) >= itmp){
                    pos.add(i);
                }
            }
        }else if(p.startsWith("<=")){
            String tmp=p.substring(2);
            int itmp=Integer.valueOf(tmp);
            for(int i = 0; i< pixels.length; i++){
                if((pixels[i] & 0x00FFFFFF) <= itmp){
                    pos.add(i);
                }
            }
        }else if(p.startsWith("=")){
            String tmp=p.substring(1);
            int itmp=Integer.valueOf(tmp);
            for(int i = 0; i< pixels.length; i++){
                if((pixels[i] & 0x00FFFFFF) == itmp){
                    pos.add(i);
                }
            }
        }else if(p.startsWith(">")){
            String tmp=p.substring(1);
            int itmp=Integer.valueOf(tmp);
            for(int i = 0; i< pixels.length; i++){
                if((pixels[i] & 0x00FFFFFF) > itmp){
                    pos.add(i);
                }
            }
        }else if(p.startsWith("<")){
            String tmp=p.substring(1);
            int itmp=Integer.valueOf(tmp);
            for(int i = 0; i< pixels.length; i++){
                if((pixels[i] & 0x00FFFFFF) < itmp){
                    pos.add(i);
                }
            }
        }
        int [] data = new int[pos.size()];

        for(int i=0;i
            data[i] = Integer.valueOf(pos.get(i).toString());
        }
        return data;
    }



2. Buat Method setPixels



void setPixels(int x, int y,int c){
        int alfa = pixels[(widht*(x-1)+y)] & 0xFFFFFFFF;
        pixels[(widht*(x-1)+y)] = (alfa|c);
    }



3. Membuat kembalian Image


Image Arr2Image(){
        ImageProducer IP = new MemoryImageSource(widht, height, pixels, 0, widht);
        return Toolkit.getDefaultToolkit().createImage(IP);
    }



4 Pada JFrame tambahkan satu tombol,  terserah diberi nama apa contoh "change" , kemudian masukkan kode berikut :


private void changeActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        int [] tmpPixel = img.findPixels(">=13265280");//angka bisa dirubah

 
        for(int i = 0; i
            int x = (int)(tmpPixel[i]/img.widht)-1;
            int y = (int)((tmpPixel[i] - ((img.widht*(x-1)))+1))-1;
            img.setPixels(x, y, 0xFFFF0000);
        }
        Image image = img.Arr2Image();
        ImageIcon icon=new ImageIcon(image);
        jLabel1.setIcon(icon);
        repaint();
    }                                     


5. Hasilnya adalah sebagai berikut :

Contoh 1 :  

int [] tmpPixel = img.findPixels("=255");








int [] tmpPixel = img.findPixels(">=13265280");




Share this :

Previous
Next Post »
0 Komentar

Penulisan markup di komentar
  • Silakan tinggalkan komentar sesuai topik. Komentar yang menyertakan link aktif, iklan, atau sejenisnya akan dihapus.
  • Untuk menyisipkan kode gunakan <i rel="code"> kode yang akan disisipkan </i>
  • Untuk menyisipkan kode panjang gunakan <i rel="pre"> kode yang akan disisipkan </i>
  • Untuk menyisipkan quote gunakan <i rel="quote"> catatan anda </i>
  • Untuk menyisipkan gambar gunakan <i rel="image"> URL gambar </i>
  • Untuk menyisipkan video gunakan [iframe] URL embed video [/iframe]
  • Kemudian parse kode tersebut pada kotak di bawah ini
  • © 2015 Simple SEO ✔

Ads