Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. //Grösse der Bearbeitungsmaske (Quadrat)
  2. int groesse = 50;
  3.  
  4. PImage img;
  5. PImage bearbeitet;
  6.  
  7. public void setup() {
  8. img = loadImage("goldengate.jpg");
  9. bearbeitet = loadImage("goldengate.jpg");
  10. surface.setResizable(true);
  11. surface.setSize(2*img.width, img.height);
  12. }
  13.  
  14.  
  15. //Funktion, um die Farbe eines Pixels auszulesen
  16. int getColor(PImage image, int x, int y) {
  17. return image.pixels[y * image.width + x];
  18. }
  19.  
  20. //Funktion, um die Farbe einem Pixel zuordnen zu können
  21. void setColor(PImage image, int x, int y, int farbe) {
  22. image.pixels[y * image.width + x] = farbe;
  23. }
  24.  
  25.  
  26. public void draw() {
  27. //Zeichnet beide Bilder
  28. image(img, 0, 0, img.width, img.height);
  29. image(bearbeitet, img.width, 0, img.width, img.height);
  30.  
  31. if (mousePressed && mouseButton == LEFT) {
  32. int neuMouseX=mouseX-(groesse/2);
  33. int neuMouseY=mouseY-(groesse/2);
  34. //Ein Rechteck zeigt an, wo das Bild in Graustufen geändert wird
  35. noFill();
  36. rect(neuMouseX,neuMouseY,groesse,groesse);
  37. //Verschachtelte Schleife, damit alle Pixel in einem Quadrat groesse bearbeitet werden
  38. for (int i=neuMouseY;i<neuMouseY+groesse;i++) {
  39. for (int k=neuMouseX;k<neuMouseX+groesse;k++) {
  40. int X = constrain(k, 0, img.width - 1);
  41. int Y = constrain(i, 0, img.height - 1);
  42. //Die Rot-, Grün- und Blauwerte werden den einzelnen Pixel des Originalbilds entnommen
  43. float R=red(getColor(img,X,Y));
  44. float G=green(getColor(img,X,Y));
  45. float B=blue(getColor(img,X,Y));
  46. //Der Grauwert wird mit der Formel brechnet
  47. float grauwert=0.299*R+0.587*G+0.114*B;
  48. //Den Grauwert auf die einzelnen Pixel des neuen Bildes anwenden
  49. setColor(bearbeitet,X,Y,color(grauwert,grauwert,grauwert));
  50. bearbeitet.updatePixels();
  51. }
  52. }
  53. } //endIf
  54.  
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement