You are on page 1of 3

package photoshopulSaracului;

import java.io.IOException;

import ro.itschool.pixels.Color;
import ro.itschool.pixels.Image;

public class Main {


public static void main(String[] args) throws IOException {
Layer l = new solidLayer(0, 0, 800, 600, Color.RED);

Image i = new Image(1000, 1000);

l.apply(i);

i.write("poza.png");
}

package photoshopulSaracului;

import ro.itschool.pixels.Color;
import ro.itschool.pixels.Image;

public abstract class Layer {


int x;
int y;
int width;
int height;
Filter filter;

private Filter filter() {


return null;

}
public Color setFilter( Filter f) {
this.filter=f;
return null;

}
public Layer(int x, int y, int i, int j) {
this.x = x;
this.y = y;
width = i;
height = j;
}

public void apply(Image img) {


for (int i = 0; i < this.width; i++) {
for (int j = 0; j < this.height; j++) {
if (pozitieCorecta(i + x, i + y, img.getWidth(),
img.getHeight())) {
img.putPixel(i, j, this.filter.apply(this.getPixel(i,
j)));
}
}
}
}

private boolean pozitieCorecta(int i, int j, int width, int height) {


if(i<0 || i>= width) {
return false;
}
if(j<0 || j>= height) {
return false;
}
return true;
}

public abstract Color getPixel(int i, int j);

package photoshopulSaracului;

import ro.itschool.pixels.Color;
import ro.itschool.pixels.Image;

public class ImageLayer extends Layer{


private Image image;

public ImageLayer(int x, int z, Image image) {


super(x, z, image.getWidth(), image.getHeight());
this.image=image;
}

@Override
public Color getPixel(int i, int j) {
return this.image.getPixel(i,j);
}

}
package photoshopulSaracului;

import ro.itschool.pixels.Color;

public class Filter {


int media;
public Color apply(Color c) {
media=(c.getRed()+c.getGreen()+c.getBlue())/3;
return new Color(media, media , media);

}
package photoshopulSaracului;

import ro.itschool.pixels.Color;

public class solidLayer extends Layer {


int x;
int y;
int width;
int height;
Color fillColor;

public solidLayer(int x, int z, int width, int height, Color fillColor) {


super(x, z, width, height);
this.fillColor=fillColor;
}

@Override
public Color getPixel(int i, int j) {

return this.fillColor();//fara sa creez fillColor imi da eroare


}

private Color fillColor() { //asta nu ar trebui sa fie aici, ca sa imi fie


ca si in pseudocod
return Color.RED;
}

You might also like