Februar 27, 2012
![](../../../../files/2012/02/points_2012-2-27_13-19-21-300x225.jpg)
// Aufgabenstellung: Diashow erstellen mit 5 Bildern welche durch drücken der Leertaste wechseln. Anschliessend kann man mit der Maus über das Bild fahren und // sieht die Pixelwerte des unter dem Cursor liegende Pixels. PImage [] img; int[] hist = new int[256]; int welchesBild; void setup() { img = new PImage[5]; img[0] = loadImage("landschaft.jpg"); img[1] = loadImage("landschaft1.jpg"); img[2] = loadImage("landschaft2.jpg"); img[3] = loadImage("landschaft3.jpg"); img[4] = loadImage("landschaft4.jpg"); size(1024,768); } void draw() { image(img[0],0,0); switch(key) { case'1': int welchesBild = 0; image(img[welchesBild],0,0); bildDurchsuchen(); break; case'2': welchesBild = 1; image(img[welchesBild],0,0); bildDurchsuchen(); break; case'3': welchesBild = 2; image(img[welchesBild],0,0); bildDurchsuchen(); break; case'4': welchesBild = 3; image(img[welchesBild],0,0); bildDurchsuchen(); break; case'5': welchesBild = 4; image(img[welchesBild],0,0); bildDurchsuchen(); break; } } void bildDurchsuchen() { for (int i = 0; i < img[welchesBild].width; i++) { // diese Schleife geht durch die Spalten for (int j = 0; j < img[welchesBild].height; j++) { // diese Schleife geht die Pixel der Spalte durch int bright = int(brightness(get(i, j))); // get(i,j) liest die Farbinformation des Pixels mit den Koordinaten i,j aus / brightness() gibt die Helligkeit des Pixels aus hist[bright]++; // schreibt den Wert ins Array } } // Find the largest value in the histogram int histMax = max(hist); // liest den höchsten Wert des Arrays aus stroke(255); //setzt die Strichfarbe auf Weiss // Draw half of the histogram (skip every second value) for (int i = 0; i < img[welchesBild].width; i += 2) { // for-Schleife welche jede 2. Spalte durchläuft // Map i (from 0..img.width-1) to a location in the histogram (0..255) int which = int(map(i, 0, img[welchesBild].width, 0, 255)); // Wert wird generiert aus i welcher von 0 bis 255 ist // um die Darstellung auf die ganze Grösse zu machen. // Convert the histogram value to a location between // the bottom and the top of the picture int y = int(map(hist[which], 0, histMax, img[welchesBild].height, 0)); // nimmt den Wert aus dem Array welches dem Wert des Arrays entspricht und mapt diesen. line(i, img[welchesBild].height, i, y); } }