diff --git a/.gradle/8.3/executionHistory/executionHistory.bin b/.gradle/8.3/executionHistory/executionHistory.bin index ddb4b12fab1ca5b2221a680defb1712d7dbba9e3..faa431d3e9bc95eafc2b519d4c58569a7de89e2e 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 abcd265318d7524d399506a0a4916b24aa827114..055e7813d940ddf8fae316945a96a262acd62cd1 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 39f7ec8af8f4c6a380fd8a9f8fccf772d89f755e..bf01ebcc9ce53cb6db31b13b8288fb318a2c1246 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 e717aba62fcde27e2654d53ac57cc0c8dbf751eb..ff411491ef1b68e57098fa482ba2c4941e415050 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 5a4414233f358fa22a3a72f48cdf664e33c7eadc..ff70ef0e11a83d02d3ba42aaa702694f76f78f3a 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 81b374fde1840b9f57f5ad3b746c349f476f02cd..3e94c0722d63d3529f8844cb5473248eb4c0db73 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index e46e12b92a9ef88030624aa69b8acf436bcb1b9c..92abf3e3b288ae24db14f2c5a942864877557654 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/build/classes/java/main/Display.class b/build/classes/java/main/Display.class index 1080fb79294bc6214b6a8a48f14413b539953290..f9ba28422a1eaee46c98e8c0390342dfa147e21f 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/Outline.class b/build/classes/java/main/Outline.class new file mode 100644 index 0000000000000000000000000000000000000000..0e873d34ba9c1429a26f4a8d761cfbb560817157 Binary files /dev/null and b/build/classes/java/main/Outline.class differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/DecreaseGrayLevels.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/DecreaseGrayLevels.class.uniqueId1 deleted file mode 100644 index bbb4e560ff43318539963d09cef48f6ecf0aca50..0000000000000000000000000000000000000000 Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/DecreaseGrayLevels.class.uniqueId1 and /dev/null differ diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Display.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/Display.class.uniqueId0 index 978934d08c8abbe115ad764a01100b62f5d4c6d3..f9ba28422a1eaee46c98e8c0390342dfa147e21f 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/compileTransaction/stash-dir/Outline.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/Outline.class.uniqueId1 new file mode 100644 index 0000000000000000000000000000000000000000..568cb260dfee6c163cada1fb364401b62c1f4413 Binary files /dev/null and b/build/tmp/compileJava/compileTransaction/stash-dir/Outline.class.uniqueId1 differ diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin index 5b3b3fa5b8ff24e41bee8b4b377e248c8aea091c..05ed6ce2a2fb7bdbd4f27496fc2cf80c5ea2fe6a 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/DecreaseGrayLevelsTest.java b/src/main/java/DecreaseGrayLevelsTest.java deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/main/java/Display.java b/src/main/java/Display.java index 4a12bdda6af375e81ed7cd0fe033c13838e3ce0e..030bcc504b676496032b08965a837d076544a087 100644 --- a/src/main/java/Display.java +++ b/src/main/java/Display.java @@ -21,7 +21,7 @@ public class Display implements Initializable { this.image = MatrixGrayImage.createImageFromPGMFile("images/luminy.pgm"); - transform transformation = new DecreaseGrayLevels(5); + transform transformation = new Outline(0.025); transformation.applyTo(this.image); diff --git a/src/main/java/Outline.java b/src/main/java/Outline.java new file mode 100644 index 0000000000000000000000000000000000000000..94f8c91adceab7bf43169f7293b71f1d96262c7c --- /dev/null +++ b/src/main/java/Outline.java @@ -0,0 +1,53 @@ +import java.util.ArrayList; +import java.util.List; + +import javafx.scene.paint.Color; + +public class Outline implements transform { + + private double threshold; + + public Outline(double threshold) { + this.threshold = threshold; // threshold détermine le seuil + } + + public void applyTo(GrayImage image) { + for (int i = 0; i < image.getWidth(); i++) { + for (int j = 0; j < image.getHeight(); j++) { + modifyPixel(image, i, j);; + } + } + } + + public List<GrayColor> SouthEastNeigbors(GrayImage image, int x, int y) { + List<GrayColor> neigborsList = new ArrayList<>(); + + if (x != image.getWidth() - 1) { + neigborsList.add(image.getPixelGrayColor(x+1, y)); + } + + if (y != image.getHeight() - 1) { + neigborsList.add(image.getPixelGrayColor(x, y+1)); + } + + return neigborsList; + } + + + public void modifyPixel(GrayImage image, int x, int y) { + + GrayColor actualByte = image.getPixelGrayColor(x, y); + List<GrayColor> neigborsList = SouthEastNeigbors(image, x, y); + ByteGrayColor newColor = ByteGrayColor.BLACK; + + for (GrayColor grayColor : neigborsList) { + if (Math.abs(grayColor.getLuminosity() - actualByte.getLuminosity()) > this.threshold) { + newColor = ByteGrayColor.WHITE; + } + } + + image.setPixel(newColor, x, y); + + } + +}