import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.Graphics; import java.awt.image.*; import java.io.*; import java.util.*; public class Slika2D extends Frame{ DisplayImage di, orig, filter; int outputArray[][],outputArray1[][],outputArray2[][], GR[][]; int one[]; Grafika GT; GraphicsOperations grafF; public Slika2D(String path){ setLayout(new GridLayout(3,1)); int ff[][] = {{1,1,1}, {1,1,1}, {1,1,1}}; orig = new DisplayImage(); di = new DisplayImage(); filter = new DisplayImage(); grafF = new GraphicsOperations(); MediaTracker tracker = new MediaTracker(this); Image slika1 = Toolkit.getDefaultToolkit().getImage(path); //pocaka da se slika nalozi //waits for an image to be loaded tracker.addImage(slika1, 0); try { tracker.waitForAll(); } catch (Exception ee) {} GT = new Grafika(slika1); //nastavi polja glede na velikost slike //sets the array size according to image size outputArray= new int[GT.imageWidth][GT.imageHeight]; outputArray1= new int[GT.imageWidth][GT.imageHeight]; outputArray2= new int[GT.imageWidth][GT.imageHeight]; GR= new int[GT.imageWidth][GT.imageHeight]; //zapolni jih s posamezno barvo //fills with color outputArray=GT.getRedArray(); outputArray1=GT.getGreenArray(); outputArray2=GT.getBlueArray(); //pretvori zgornja polja v sive barve in napolni GR //converts color arrays into grayscale GR = GT.convertRGBToG(outputArray,outputArray1,outputArray2); //spravi v 1-dimenzionalno polje //save to 1D array one = new int[GT.imageHeight*GT.imageWidth]; one = GT.convertGrayToArray(GR); orig.setImage(path); di.setImage(one, GT.imageWidth, GT.imageHeight); //outputArray2 = grafF.gamma(GR, GT.imageWidth, GT.imageHeight, 1.2); outputArray2 = grafF.faksfx(GR, GT.imageWidth, GT.imageHeight); one = GT.convertGrayToArray(GR); filter.setImage(one, GT.imageWidth, GT.imageHeight); //dodaj original sliko, crno-belo in nato se filter //add original image, grayscale image and filtered image add(orig); add(di); add(filter); //dodaj rokovalnik //add handler addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //nastavi položaj in velikost okna //set the position and size of the window setBounds(100, 100, GT.imageWidth, GT.imageHeight*3); setTitle("slika"); setVisible(true); }//Start public static void main(String args[]){ new Slika2D(args[0]); } }