Skip to content

Commit c9f430a

Browse files
committed
Add Java Image process
1 parent a68493c commit c9f430a

44 files changed

Lines changed: 25682 additions & 216 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.idea/compiler.xml

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core-java-modules/core-java-collections-conversions/src/test/java/com/ossez/java/lists/ListToStringUnitTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22

33
import java.util.Arrays;
44
import java.util.List;
5+
import java.util.Set;
56
import java.util.stream.Collectors;
67

8+
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
79
import org.apache.commons.lang3.StringUtils;
10+
import org.apache.commons.lang3.builder.ToStringBuilder;
811
import org.junit.Test;
912

1013
public class ListToStringUnitTest {
@@ -27,5 +30,28 @@ public void whenCollectorsJoining_thenPrintCustom() {
2730
public void whenStringUtilsJoin_thenPrintCustom() {
2831
List<Integer> intList = Arrays.asList(1, 2, 3);
2932
System.out.println(StringUtils.join(intList, "|"));
33+
34+
// Object obj1 = new Integer(100);
35+
// System.out.println(obj1.toString());
36+
37+
// ToStringBuilder.reflectionToString(intList);
38+
39+
Country country = new Country("United States", "North America", 4000000);
40+
System.out.println(ReflectionToStringBuilder.toString(intList));
41+
}
42+
43+
44+
45+
class Country {
46+
private String name;
47+
private String continent;
48+
private int population;
49+
50+
public Country(String name, String continent, int population) {
51+
this.name = name;
52+
this.continent = continent;
53+
this.population = population;
54+
}
3055
}
56+
3157
}

core-java-modules/core-java-datetime-conversion/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<dependency>
3030
<groupId>log4j</groupId>
3131
<artifactId>log4j</artifactId>
32-
<version>${version.log4j}</version>
32+
<version>${log4j.version}</version>
3333
</dependency>
3434
<!-- test scoped -->
3535
<dependency>

core-java-modules/core-java-io/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
<dependency>
7272
<groupId>log4j</groupId>
7373
<artifactId>log4j</artifactId>
74-
<version>${version.log4j}</version>
74+
<version>${log4j.version}</version>
7575
</dependency>
7676
<dependency> <!-- needed to bridge to slf4j for projects that use the log4j APIs directly -->
7777
<groupId>org.slf4j</groupId>

core-java-modules/core-java-streams/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<dependency>
3636
<groupId>log4j</groupId>
3737
<artifactId>log4j</artifactId>
38-
<version>${version.log4j}</version>
38+
<version>${log4j.version}</version>
3939
</dependency>
4040
<dependency>
4141
<groupId>org.projectlombok</groupId>

image-processing/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
## Image Processing
2+
3+
This module contains articles about image processing.
4+
5+
### Relevant Articles:
6+
- [Working with Images in Java](https://www.baeldung.com/java-images)
7+
- [Intro to OpenCV with Java](https://www.baeldung.com/java-opencv)
8+
- [Optical Character Recognition with Tesseract](https://www.baeldung.com/java-ocr-tesseract)
9+
- [How Can I Resize an Image Using Java?](https://www.baeldung.com/java-resize-image)
10+
- [Adding Text to an Image in Java](https://www.baeldung.com/java-add-text-to-image)
11+
- [Capturing Image From Webcam in Java](https://www.baeldung.com/java-capture-image-from-webcam)

image-processing/pom.xml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<artifactId>image-processing</artifactId>
7+
<name>image-processing</name>
8+
<parent>
9+
<groupId>com.ossez</groupId>
10+
<artifactId>parent-modules</artifactId>
11+
<version>0.0.2-SNAPSHOT</version>
12+
<relativePath>../pom.xml</relativePath>
13+
</parent>
14+
15+
<dependencies>
16+
<dependency>
17+
<groupId>net.imagej</groupId>
18+
<artifactId>ij</artifactId>
19+
<version>${ij.version}</version>
20+
<exclusions>
21+
<exclusion>
22+
<artifactId>commons-logging</artifactId>
23+
<groupId>commons-logging</groupId>
24+
</exclusion>
25+
</exclusions>
26+
</dependency>
27+
<dependency>
28+
<groupId>org.openimaj</groupId>
29+
<artifactId>core-image</artifactId>
30+
<version>${core-image.version}</version>
31+
<exclusions>
32+
<exclusion>
33+
<artifactId>commons-logging</artifactId>
34+
<groupId>commons-logging</groupId>
35+
</exclusion>
36+
</exclusions>
37+
</dependency>
38+
<dependency>
39+
<groupId>org.openpnp</groupId>
40+
<artifactId>opencv</artifactId>
41+
<version>${opencv.version}</version>
42+
</dependency>
43+
<dependency>
44+
<groupId>com.twelvemonkeys.imageio</groupId>
45+
<artifactId>imageio-core</artifactId>
46+
<version>${imageio.version}</version>
47+
</dependency>
48+
<dependency>
49+
<groupId>com.twelvemonkeys.imageio</groupId>
50+
<artifactId>imageio-bmp</artifactId>
51+
<version>${imageio.version}</version>
52+
</dependency>
53+
<dependency>
54+
<groupId>net.sourceforge.tess4j</groupId>
55+
<artifactId>tess4j</artifactId>
56+
<version>${tess4j.version}</version>
57+
</dependency>
58+
<dependency>
59+
<groupId>org.bytedeco</groupId>
60+
<artifactId>tesseract-platform</artifactId>
61+
<version>${tesseract-platform.version}</version>
62+
</dependency>
63+
<dependency>
64+
<groupId>org.imgscalr</groupId>
65+
<artifactId>imgscalr-lib</artifactId>
66+
<version>${imgscalr-version}</version>
67+
</dependency>
68+
<dependency>
69+
<groupId>net.coobird</groupId>
70+
<artifactId>thumbnailator</artifactId>
71+
<version>${thumbnailator-version}</version>
72+
</dependency>
73+
<dependency>
74+
<groupId>com.github.downgoon</groupId>
75+
<artifactId>marvin</artifactId>
76+
<version>${marvin-version}</version>
77+
<type>pom</type>
78+
</dependency>
79+
<dependency>
80+
<groupId>com.github.downgoon</groupId>
81+
<artifactId>MarvinPlugins</artifactId>
82+
<version>${marvin-version}</version>
83+
</dependency>
84+
<dependency>
85+
<groupId>org.bytedeco</groupId>
86+
<artifactId>javacv-platform</artifactId>
87+
<version>${javacv-platform.version}</version>
88+
</dependency>
89+
<dependency>
90+
<groupId>com.github.sarxos</groupId>
91+
<artifactId>webcam-capture</artifactId>
92+
<version>${webcam-capture.version}</version>
93+
</dependency>
94+
<dependency>
95+
<groupId>org.openjfx</groupId>
96+
<artifactId>javafx-graphics</artifactId>
97+
<version>${javafx-graphics.version}</version>
98+
</dependency>
99+
</dependencies>
100+
101+
<properties>
102+
<core-image.version>1.3.10</core-image.version>
103+
<ij.version>1.51h</ij.version>
104+
<imageio.version>3.3.2</imageio.version>
105+
<tess4j.version>4.5.1</tess4j.version>
106+
<tesseract-platform.version>4.1.0-1.5.2</tesseract-platform.version>
107+
<opencv.version>4.7.0-0</opencv.version>
108+
<javacv-platform.version>1.5.5</javacv-platform.version>
109+
<webcam-capture.version>0.3.12</webcam-capture.version>
110+
<imgscalr-version>4.2</imgscalr-version>
111+
<thumbnailator-version>0.4.11</thumbnailator-version>
112+
<marvin-version>1.5.5</marvin-version>
113+
<javafx-graphics.version>11</javafx-graphics.version>
114+
</properties>
115+
116+
</project>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.baeldung.image.resize.core;
2+
3+
import java.awt.Graphics2D;
4+
import java.awt.image.BufferedImage;
5+
import java.io.File;
6+
import java.io.IOException;
7+
8+
import javax.imageio.ImageIO;
9+
10+
public class Graphics2DExample {
11+
12+
static BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) {
13+
BufferedImage resizedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
14+
Graphics2D graphics2D = resizedImage.createGraphics();
15+
graphics2D.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null);
16+
graphics2D.dispose();
17+
return resizedImage;
18+
}
19+
20+
public static void main(String[] args) throws IOException {
21+
BufferedImage originalImage = ImageIO.read(new File("src/main/resources/images/sampleImage.jpg"));
22+
BufferedImage outputImage = resizeImage(originalImage, 200, 200);
23+
ImageIO.write(outputImage, "jpg", new File("src/main/resources/images/sampleImage-resized-graphics2d.jpg"));
24+
}
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.baeldung.image.resize.core;
2+
3+
import java.awt.Image;
4+
import java.awt.image.BufferedImage;
5+
import java.io.File;
6+
import java.io.IOException;
7+
8+
import javax.imageio.ImageIO;
9+
10+
public class ImageScaledInstanceExample {
11+
static BufferedImage resizeImage(BufferedImage originalImage, int targetWidth, int targetHeight) {
12+
Image resultingImage = originalImage.getScaledInstance(targetWidth, targetHeight, Image.SCALE_DEFAULT);
13+
BufferedImage bufferedImage = new BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB);
14+
bufferedImage.getGraphics()
15+
.drawImage(resultingImage, 0, 0, null);
16+
return bufferedImage;
17+
}
18+
19+
public static void main(String[] args) throws IOException {
20+
BufferedImage originalImage = ImageIO.read(new File("src/main/resources/images/sampleImage.jpg"));
21+
BufferedImage outputImage = resizeImage(originalImage, 200, 200);
22+
ImageIO.write(outputImage, "jpg", new File("src/main/resources/images/sampleImage-resized-scaledinstance.jpg"));
23+
}
24+
}

0 commit comments

Comments
 (0)