diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b0484eb..4cf9d64 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -7,6 +7,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/swing/build.gradle.kts b/imaging/build.gradle.kts similarity index 53% rename from swing/build.gradle.kts rename to imaging/build.gradle.kts index d2aab59..a28a847 100644 --- a/swing/build.gradle.kts +++ b/imaging/build.gradle.kts @@ -10,5 +10,7 @@ plugins { } dependencies { + // https://mvnrepository.com/artifact/org.apache.commons/commons-imaging + implementation("org.apache.commons:commons-imaging:1.0-alpha2") } diff --git a/imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java b/imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java new file mode 100644 index 0000000..2fb3b9c --- /dev/null +++ b/imaging/src/main/java/kr/pe/elex/examples/CommonsSample.java @@ -0,0 +1,43 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import org.apache.commons.imaging.*; +import org.apache.commons.imaging.formats.png.PngConstants; +import org.apache.commons.imaging.formats.tiff.constants.TiffConstants; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +public class CommonsSample { + public static void main(String... args) throws ImageWriteException, IOException, ImageReadException { + readPNG(); + } + + public static void readPNG() throws IOException, ImageReadException, ImageWriteException { + BufferedImage imageSource = Imaging.getBufferedImage(Objects + .requireNonNull(Sample.class.getResourceAsStream("/java.png"))); + Image scaledImage = imageSource.getScaledInstance(16, 16, Image.SCALE_SMOOTH); + + BufferedImage newImage = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); + Graphics2D g = newImage.createGraphics(); + g.drawImage(scaledImage, 0, 0, null); + + final Map params = new HashMap<>(); + params.put(ImagingConstants.PARAM_KEY_COMPRESSION, + TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED); + + Imaging.writeImage(newImage, new File("out/test-out.ico"), ImageFormats.TIFF, params); + //PngConstants. + } +} diff --git a/imaging/src/main/java/kr/pe/elex/examples/Sample.java b/imaging/src/main/java/kr/pe/elex/examples/Sample.java new file mode 100644 index 0000000..d94c1bf --- /dev/null +++ b/imaging/src/main/java/kr/pe/elex/examples/Sample.java @@ -0,0 +1,57 @@ +/* + * Examples for Java + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import java.util.Objects; + +public class Sample { + public static void main(String... args) throws IOException { + formats(); + //readPNG(); + } + + public static void readPNG() throws IOException { + BufferedImage imageSource = ImageIO.read(Objects + .requireNonNull(Sample.class.getResourceAsStream("/java.png"))); + Image scaledImage = imageSource.getScaledInstance(100, 100, Image.SCALE_SMOOTH); + + BufferedImage newImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); + Graphics2D g = newImage.createGraphics(); + boolean r = g.drawImage(scaledImage, 0, 0, null); + + System.out.println("? " + r); + ImageIO.write(newImage, "JPG", new File("out/test-out.jpg")); + //ImageIO.write(imageSource, "JPG", new File("test-src-out.jpg")); + } + + public static BufferedImage convert(final Image image, final int imageTYpe) { + final BufferedImage newImage = new BufferedImage(image.getWidth(null), image.getHeight(null), + imageTYpe); + + final Graphics2D g = newImage.createGraphics(); + g.drawImage(image, 0, 0, null); + g.dispose(); + return newImage; + } + + public static void formats(){ + System.out.println("Writer"); + for (String item : ImageIO.getWriterFormatNames()) { + System.out.println(item); + } + System.out.println("Reader"); + for (String item : ImageIO.getReaderFormatNames()) { + System.out.println(item); + } + } +} diff --git a/imaging/src/main/resources/java.png b/imaging/src/main/resources/java.png new file mode 100644 index 0000000..dac1b16 Binary files /dev/null and b/imaging/src/main/resources/java.png differ diff --git a/java-fx/build.gradle.kts b/java-fx/build.gradle.kts deleted file mode 100644 index 7dda4a1..0000000 --- a/java-fx/build.gradle.kts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Examples for Java - * - * Copyright (c) 2021. Elex. All Rights Reserved. - * https://www.elex-project.com/ - */ - -plugins { - id("elex-java") - id("application") - id("org.openjfx.javafxplugin") version "0.0.10" - id("org.beryx.jlink") version "2.23.1" -} -application { - mainClass.set("kr.pe.elex.examples.FxmlApplication") - mainModule.set("kr.pe.elex.examples") -} -javafx { - version = "11.0.2" - modules = listOf("javafx.controls", "javafx.fxml") -} -dependencies { - //implementation("org.openjfx:javafx-controls:11.0.2") - //implementation("org.openjfx:javafx-fxml:11.0.2") -} diff --git a/java-fx/logback.xml b/java-fx/logback.xml deleted file mode 100644 index 74ff8a3..0000000 --- a/java-fx/logback.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - diff --git a/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java b/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java deleted file mode 100644 index d77e2ad..0000000 --- a/java-fx/src/main/java/kr/pe/elex/examples/FxmlApplication.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Examples for Java - * - * Copyright (c) 2021. Elex. All Rights Reserved. - * https://www.elex-project.com/ - */ - -package kr.pe.elex.examples; - -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.layout.GridPane; -import javafx.stage.Stage; - -public class FxmlApplication extends Application { - public static void main(String... args) { - launch(args); - } - - @Override - public void start(Stage primaryStage) throws Exception { - primaryStage.setTitle("Hello!"); - primaryStage.setWidth(800); - primaryStage.setHeight(600); - //GridPane root = new GridPane(); - Parent root = FXMLLoader.load(getClass().getResource ("/fxml/root.fxml")); - Scene scene = new Scene(root); - primaryStage.setScene(scene); - primaryStage.show(); - } -} diff --git a/java-fx/src/main/java/module-info.java b/java-fx/src/main/java/module-info.java deleted file mode 100644 index 69ca3b8..0000000 --- a/java-fx/src/main/java/module-info.java +++ /dev/null @@ -1,6 +0,0 @@ -module kr.pe.elex.examples { - requires javafx.graphics; - requires javafx.fxml; - - exports kr.pe.elex.examples; -} diff --git a/java-fx/src/main/resources/fxml/root.fxml b/java-fx/src/main/resources/fxml/root.fxml deleted file mode 100644 index e9f9789..0000000 --- a/java-fx/src/main/resources/fxml/root.fxml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/settings.gradle.kts b/settings.gradle.kts index 71dbf93..3f83a15 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,6 +13,7 @@ include( "web-socket-servlet", "web-socket-client", "thread", "hibernate", "jdbc-sqlite", "xml", "jackson", "jsoup", "markdown", "network", "httpd", - "swing", "java-fx", "properties", - "mustache", "thymeleaf", "locale", "quartz", "sysinfo" + "properties", + "mustache", "thymeleaf", "locale", "quartz", "sysinfo", + "imaging" ) diff --git a/swing/logback.xml b/swing/logback.xml deleted file mode 100644 index 74ff8a3..0000000 --- a/swing/logback.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - diff --git a/swing/src/main/java/kr/pe/elex/examples/HttpD.java b/swing/src/main/java/kr/pe/elex/examples/HttpD.java deleted file mode 100644 index 4a5cb7a..0000000 --- a/swing/src/main/java/kr/pe/elex/examples/HttpD.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Examples for Java - * - * Copyright (c) 2021. Elex. All Rights Reserved. - * https://www.elex-project.com/ - */ - -package kr.pe.elex.examples; - -import com.sun.net.httpserver.HttpExchange; -import com.sun.net.httpserver.HttpHandler; -import com.sun.net.httpserver.HttpServer; -import lombok.extern.slf4j.Slf4j; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.InetSocketAddress; -import java.time.LocalDateTime; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -@Slf4j -public class HttpD { - public static void main(String... args) throws IOException { - final ExecutorService threadPool = Executors.newCachedThreadPool(); - HttpServer httpServer = HttpServer.create(new InetSocketAddress(18080), 0); - httpServer.setExecutor(threadPool); - - httpServer.createContext("/", new HttpHandler() { - @Override - public void handle(final HttpExchange httpExchange) { - try { - httpExchange.getResponseHeaders().add("X-Datetime", LocalDateTime.now().toString()); - String message = "

Hello, world!

"; - //message += httpExchange.getRequestMethod(); - //BufferedReader reader = new BufferedReader(new InputStreamReader(httpExchange.getRequestBody())); - //message += reader.readLine(); - httpExchange.sendResponseHeaders(200, message.getBytes().length); - OutputStream os = httpExchange.getResponseBody(); - os.write(message.getBytes()); - os.flush(); - os.close(); - } catch (IOException e) { - } - - } - }); - httpServer.start(); - } - -}