Guest User

Untitled

a guest
Dec 21st, 2020
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.image.*;
  3. import javax.swing.*;
  4.  
  5. public class OFImage extends BufferedImage
  6. {
  7.     /**
  8.      * Buat OFImage yang merupakan salinan BufferedImage.
  9.      * @param image Gambar yang akan disalin.
  10.      */
  11.     public OFImage(BufferedImage image)
  12.     {
  13.          super(image.getColorModel(), image.copyData(null), image.isAlphaPremultiplied(), null);
  14.     }
  15.    
  16.     /**
  17.      * Membuat OFImange dengan ukuran yang telah dispesifikasi dan konten yang belum dispesifikasi
  18.      * @param width Lebar dari gambar
  19.      * @param height Tinggi dari gambar
  20.      */
  21.     public OFImage(int width, int height)
  22.     {
  23.         super(width, height, TYPE_INT_RGB);
  24.     }
  25.    
  26.     /**
  27.      * Atur pixel gambar dengan warna yang spesifik (r,g,b).
  28.      * @param x Posisi x dalam pixel
  29.      * @param y Posisi y dalam pixel
  30.      * @param col Warna pixel
  31.      */
  32.     public void setPixel(int x, int y, Color col)
  33.     {
  34.         int pixel = col.getRGB();
  35.         setRGB(x, y, pixel);
  36.     }
  37.    
  38.     /**
  39.      * Dapatkan value dari warna pada posisi pixel.
  40.      * @param x Posisi x dalam pixel
  41.      * @param y Posisi y dalam pixel
  42.      * @return Warna pixel pada posisi yang sudah ditentukan
  43.      */
  44.     public Color getPixel(int x, int y)
  45.     {
  46.         int pixel = getRGB(x, y);
  47.         return new Color(pixel);
  48.     }
  49.    
  50.     // Buat gambar lebih gelap
  51.     public void darker()
  52.     {
  53.         int height = getHeight();
  54.         int width = getWidth();
  55.         for(int y = 0; y < height; y++)
  56.         {
  57.             for(int x = 0; x < width; x++)
  58.                 setPixel(x, y, getPixel(x, y).darker());
  59.         }
  60.     }
  61.    
  62.     // Buat gambar lebih cerah
  63.     public void lighter()
  64.     {
  65.         int height = getHeight();
  66.         int width = getWidth();
  67.         for(int y = 0; y < height; y++)
  68.         {
  69.             for(int x = 0; x < width; x++)
  70.                 setPixel(x, y, getPixel(x, y).brighter());
  71.         }
  72.     }
  73.    
  74.     /**
  75.      * Tampilkan three level threshold operation.
  76.      * Untuk mewarnai ulang gambar dengan tiga warna: putih, abu-abu, hitam
  77.      */
  78.     public void threshold()
  79.     {
  80.         int height = getHeight();
  81.         int width = getWidth();
  82.         for(int y = 0; y < height; y++)
  83.         {
  84.             for(int x = 0; x < width; x++)
  85.             {
  86.                 Color pixel = getPixel(x, y);
  87.                 int brightness = (pixel.getRed() + pixel.getBlue() + pixel.getGreen()) / 3;
  88.                 if(brightness <= 85) setPixel(x, y, Color.BLACK);
  89.                 else if(brightness <= 170) setPixel(x, y, Color.GRAY);
  90.                 else setPixel(x, y, Color.WHITE);
  91.             }
  92.         }
  93.     }
  94. }
  95.  
Advertisement
Add Comment
Please, Sign In to add comment