package elte.java2_utikalauz5.java2d; import java.awt.*; import java.awt.image.*; import java.awt.event.*; /** peldaprogram a keresesi tablazatok hasznalatara. @link.forrásfájl {@docRoot}/../data/java2d/src Kuszoboles.java @link.letöltés {@docRoot}/../data/java2d Kuszoboles.jar @since Java 2 Útikalauz programozóknak */ class Kuszoboles extends Canvas { /** Verziószám */ private final static long serialVersionUID = 15L; Image kep; BufferedImage eredetiKep, ujKep; public void kepBetoltes () { setBackground (Color.white); kep = getToolkit ().getImage (getClass().getClassLoader().getResource("kep.gif")); try { MediaTracker tracker = new MediaTracker (this); tracker.addImage (kep, 0); tracker.waitForID (0); } catch (Exception e) { } } public void paint (Graphics g) { Graphics2D g2 = (Graphics2D) g; // a betoltott kepbol egy BufferedImage kepet keszitunk eredetiKep = new BufferedImage (kep.getWidth (this), kep.getHeight (this), BufferedImage.TYPE_BYTE_GRAY); eredetiKep.createGraphics ().drawImage (kep, 0, 0, null); ujKep = new BufferedImage (kep.getWidth (this), kep.getHeight (this), BufferedImage.TYPE_BYTE_GRAY); final byte kuszobErtek = 60; byte[] kuszobSzin = new byte[256]; for (int i = 0; i < 256; i++) if (i > kuszobErtek) kuszobSzin[i] = (byte) 255; else kuszobSzin[i] = (byte) 0; LookupOp kuszoboles = new LookupOp (new ByteLookupTable (0, kuszobSzin), null); kuszoboles.filter (eredetiKep, ujKep); // kirajzoljuk az eredeti es az uj kepet g2.drawImage (eredetiKep, 0, 0, this); g2.drawImage (ujKep, 0, 100, null); } public static void main (String[] args) { Frame f = new Frame (); Kuszoboles k = new Kuszoboles (); k.kepBetoltes (); f.add (k); f.addWindowListener ( new WindowAdapter () { public void windowClosing (WindowEvent e) { System.exit (0); } } ); f.setSize (200, 200); f.setVisible (true); } }