diff --git a/.gradle/8.3/executionHistory/executionHistory.bin b/.gradle/8.3/executionHistory/executionHistory.bin index 623a2f91317550f1c7586ca6f068d914a5838be4..9d3780f8123b4b4aa99b163cdd09e0d50c25b984 100644 Binary files a/.gradle/8.3/executionHistory/executionHistory.bin and b/.gradle/8.3/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.3/executionHistory/executionHistory.lock b/.gradle/8.3/executionHistory/executionHistory.lock index 4328d34d87aaf6308042d605fc4a9ea514de7d77..9bf0aadeb3d123b6a6b39d6f6802b6ebea54b56b 100644 Binary files a/.gradle/8.3/executionHistory/executionHistory.lock and b/.gradle/8.3/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.3/fileHashes/fileHashes.bin b/.gradle/8.3/fileHashes/fileHashes.bin index 39f4305e248a513d9b56bab3cad9b2791e5a2bc3..c681bf04987bbb8a1e646e413d17e66df3f27ee4 100644 Binary files a/.gradle/8.3/fileHashes/fileHashes.bin and b/.gradle/8.3/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.3/fileHashes/fileHashes.lock b/.gradle/8.3/fileHashes/fileHashes.lock index 1e2285d9aa005d790fa74ca1df1b2f94692d1c42..9985402729aff453d9a26afe68ab825daa6aaa2a 100644 Binary files a/.gradle/8.3/fileHashes/fileHashes.lock and b/.gradle/8.3/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.3/fileHashes/resourceHashesCache.bin b/.gradle/8.3/fileHashes/resourceHashesCache.bin index 92c7a7e7608b2a7b85fe279be2a8c630a4807fec..3be5c8489c27517fcf6ee91220bf625c1df0f3a7 100644 Binary files a/.gradle/8.3/fileHashes/resourceHashesCache.bin and b/.gradle/8.3/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index e8458cb93c584c2b9cefe6f9381a9ca5ebfed6b9..8b519276fb08d350f4b602b988a77bb7c1c6a9dc 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/java/main/Display.class b/build/classes/java/main/Display.class index 13d5b1473bb0bc4f5c31962d8a9686185786f79b..e7e857e22dc489bfff642e97414440dea28d0f10 100644 Binary files a/build/classes/java/main/Display.class and b/build/classes/java/main/Display.class differ diff --git a/build/classes/java/main/Mirror.class b/build/classes/java/main/Mirror.class new file mode 100644 index 0000000000000000000000000000000000000000..d0314c2c103f34bd32ad68d559914890f2ce5582 Binary files /dev/null and b/build/classes/java/main/Mirror.class differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Display.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/Display.class.uniqueId0 index a76ef314521ee9fbfc354abfba4f2fbdcd0cb270..73740c541d8ee3dff57ce2a98eb1fcf6f07e5eb4 100644 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Display.class.uniqueId0 and b/build/tmp/compileJava/compileTransaction/stash-dir/Display.class.uniqueId0 differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index e79fbdfb6131979f5220a236efaf0484b598948f..4880c63038c9a0c87ab265ca3b2e0f8ebf7d6a2d 100644 Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/src/main/java/Display.java b/src/main/java/Display.java index f80091bc4a84b8d23c2f9d4f0be152537c96acc5..a11e53b19ac7c83d2bd2630a8c21179f88e8734e 100644 --- a/src/main/java/Display.java +++ b/src/main/java/Display.java @@ -22,7 +22,7 @@ public class Display implements Initializable { this.image = MatrixGrayImage.createImageFromPGMFile("images/luminy.pgm"); - transform[] transformList = new transform[] {new DecreaseGrayLevels(8), new Outline(0.05), new Invert()}; + transform[] transformList = new transform[] {new Mirror("both")}; transform transformation = new CompositeTransform(transformList); diff --git a/src/main/java/Mirror.java b/src/main/java/Mirror.java new file mode 100644 index 0000000000000000000000000000000000000000..f0edc869ec4bc3f83a8bc6961712007c077677c9 --- /dev/null +++ b/src/main/java/Mirror.java @@ -0,0 +1,51 @@ +public class Mirror implements transform { + private String axes; + + public Mirror(String axes) { + this.axes = axes; + } + + public void applyTo(GrayImage image) { + modify(image); + } + + public void modify(GrayImage image) { + int width = image.getWidth(); + int height = image.getHeight(); + GrayColor shortLivedColor = new ByteGrayColor(); + + if (axes.equals("horizontal")) { + horizontalFlip(image, width, height, shortLivedColor); + } + + if (axes.equals("vertical")) { + verticalFlip(image, width, height, shortLivedColor); + } + + if (axes.equals("both")) { + horizontalFlip(image, width, height, shortLivedColor); + verticalFlip(image, width, height, shortLivedColor); + } + } + + + public void horizontalFlip(GrayImage image, int width, int height, GrayColor shortLivedColor) { + for (int i = 0; i < width * 0.5; i++){ + for (int j = 0; j < height; j++){ + shortLivedColor = image.getPixelGrayColor(i, j); + image.setPixel(image.getPixelGrayColor(width - 1 - i, j), i, j); + image.setPixel(shortLivedColor, width - 1 - i, j); + } + } + } + + public void verticalFlip(GrayImage image, int width, int height, GrayColor shortLivedColor) { + for (int i = 0; i < width; i++){ + for (int j = 0; j < height * 0.5; j++){ + shortLivedColor = image.getPixelGrayColor(i, j); + image.setPixel(image.getPixelGrayColor(i, height - 1 -j), i, j); + image.setPixel(shortLivedColor, i, height - 1 - j); + } + } + } +}