diff --git a/tp4/GrayImage.java b/tp4/GrayImage.java index fa3bce925f8ebc7bbc403af9ff4030b496808a5f..6bb06abfbf063ba3d7e9a217c1645e8d1d0fd91d 100755 --- a/tp4/GrayImage.java +++ b/tp4/GrayImage.java @@ -8,9 +8,11 @@ public interface GrayImage extends Image { GrayColor getDominantGray(int squareX, int squareY, int squareSize); default int dominantGray(int squareX, int squareY, int squareSize) { int sumOfGrayLevels = 0; + for (int x = squareX; x < squareX+squareSize; ++x) for (int y = squareY; y < squareY+squareSize; ++y) sumOfGrayLevels += getPixelGrayColor(x, y).getGrayLevel(); + return (sumOfGrayLevels / (squareSize*squareSize)); } } diff --git a/tp4/Pixelate.java b/tp4/Pixelate.java index d15fae37a971d0ee871d9902cfe0fb4b1328d599..4db7bddd3a473fc2729c86af154a0296777ca0f6 100644 --- a/tp4/Pixelate.java +++ b/tp4/Pixelate.java @@ -1,9 +1,11 @@ public class Pixelate implements Transform { int newPixelSize; - int newSquareX; int newSquareY; + int newSquareX; GrayColor dominantColor; + Pixelate(int newPixelSize){ + this.newPixelSize = newPixelSize; } @@ -11,13 +13,14 @@ public class Pixelate implements Transform { public void applyTo(GrayImage image) { for (int x = 0; x < (image.getWidth()) / newPixelSize; ++x) { for (int y = 0; y < (image.getHeight()) / newPixelSize; ++y) { - newSquareX = x * newPixelSize; newSquareY = y * newPixelSize; + newSquareX = x * newPixelSize; dominantColor = image.getDominantGray(newSquareX, newSquareY, newPixelSize); for (int squareX = 0; squareX < newPixelSize; ++squareX){ for (int squareY = 0; squareY < newPixelSize; ++squareY ){ - int X = newSquareX + squareX; - int Y = newSquareY + squareY; + int Y = newSquareY + squareY; + int X = newSquareX + squareX; + image.setPixel(dominantColor, X, Y); } }