Skip to content

Commit 0fbacaa

Browse files
author
Evgeniy Sidenko
committed
Aspose.Imaging for Java 25.10
1 parent c2799c9 commit 0fbacaa

File tree

3 files changed

+117
-3
lines changed

3 files changed

+117
-3
lines changed

Examples/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.aspose</groupId>
55
<artifactId>imaging-java-examples</artifactId>
6-
<version>25.9</version>
6+
<version>25.10</version>
77
<packaging>jar</packaging>
88
<properties>
99
<maven.compiler.source>1.8</maven.compiler.source>
@@ -15,12 +15,12 @@
1515
<dependency>
1616
<groupId>com.aspose</groupId>
1717
<artifactId>aspose-imaging</artifactId>
18-
<version>25.9</version>
18+
<version>25.10</version>
1919
</dependency>
2020
<dependency>
2121
<groupId>com.aspose</groupId>
2222
<artifactId>aspose-imaging</artifactId>
23-
<version>25.9</version>
23+
<version>25.10</version>
2424
<classifier>javadoc</classifier>
2525
</dependency>
2626
</dependencies>
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
package com.aspose.imaging.examples.ModifyingImages;
2+
3+
import com.aspose.imaging.Image;
4+
import com.aspose.imaging.ImageOptionsBase;
5+
import com.aspose.imaging.examples.Logger;
6+
import com.aspose.imaging.examples.Path;
7+
import com.aspose.imaging.examples.Utils;
8+
import com.aspose.imaging.exif.ExifData;
9+
import com.aspose.imaging.exif.enums.ExifOrientation;
10+
import com.aspose.imaging.metadata.IImageMetadataFormat;
11+
import com.aspose.imaging.xmp.XmpPacketWrapper;
12+
import com.aspose.imaging.xmp.schemas.xmpbaseschema.XmpBasicPackage;
13+
14+
import java.util.Arrays;
15+
16+
public class ExtendExifMetadataForRasterImage
17+
{
18+
public static void main(String... args)
19+
{
20+
Logger.startExample();
21+
// The path to the documents' directory.
22+
String dataDir = Utils.getSharedDataDir() + "PNG/";
23+
24+
String filePath = Path.combine(dataDir, "00020.png");
25+
String outputPath = filePath + ".edited.png";
26+
editSourceImageMetadata(filePath, outputPath);
27+
28+
Logger.endExample();
29+
}
30+
31+
public static void editSourceImageMetadata(String inputPath, String outputPath)
32+
{
33+
try (Image image = Image.load(inputPath))
34+
{
35+
if (image.getXmpData() != null)
36+
{
37+
XmpBasicPackage newPackage = new XmpBasicPackage();
38+
newPackage.addValue("New key", "New value");
39+
40+
image.getXmpData().addPackage(newPackage);
41+
}
42+
43+
if (image.getExifData() != null)
44+
{
45+
image.getExifData().setOrientation(ExifOrientation.RightTop);
46+
}
47+
48+
image.save(outputPath);
49+
50+
Utils.deleteFile(outputPath);
51+
}
52+
}
53+
54+
public static void exportSourceImageMetadata(String inputPath, String outputPath, ImageOptionsBase outputOptions)
55+
{
56+
try (Image inputImage = Image.load(inputPath))
57+
{
58+
// Set KeepMetadata to true to export inputImage metadata profiles, if outputOptions instance does not contain ones.
59+
outputOptions.setKeepMetadata(true);
60+
61+
inputImage.save(outputPath, outputOptions);
62+
}
63+
}
64+
65+
public static void overwriteSourceImageMetadata(String inputPath, String outputPath, ImageOptionsBase outputOptions)
66+
{
67+
try (Image image = Image.load(inputPath))
68+
{
69+
IImageMetadataFormat[] newMetadata = GetNewMetadata();
70+
71+
// Try to set metadata, if the image format support metadata format type.
72+
for (IImageMetadataFormat metadata : newMetadata)
73+
{
74+
if (outputOptions.trySetMetadata(metadata))
75+
{
76+
System.out.format("%s image supports %s",
77+
outputOptions.getClass().getName(), metadata.getClass().getName());
78+
}
79+
}
80+
81+
// Or set metadata directly without image and metadata format compatibility check.
82+
outputOptions.setExifData(Arrays.stream(newMetadata)
83+
.filter(m -> m instanceof ExifData)
84+
.limit(1)
85+
.map(it -> (ExifData)it)
86+
.findFirst().get());
87+
outputOptions.setXmpData(Arrays.stream(newMetadata)
88+
.filter(m -> m instanceof XmpPacketWrapper)
89+
.limit(1)
90+
.map(it -> (XmpPacketWrapper)it)
91+
.findFirst().get()); //as XmpPacketWrapper;
92+
93+
image.save(outputPath, outputOptions);
94+
}
95+
}
96+
97+
public static IImageMetadataFormat[] GetNewMetadata()
98+
{
99+
XmpPacketWrapper xmpData = new XmpPacketWrapper();
100+
XmpBasicPackage xmpPackage = new XmpBasicPackage();
101+
xmpPackage.addValue("User key", "User value");
102+
xmpData.addPackage(xmpPackage);
103+
104+
return new IImageMetadataFormat[]
105+
{
106+
xmpData,
107+
new ExifData()
108+
{{
109+
setOrientation(ExifOrientation.RightTop);
110+
}},
111+
};
112+
}
113+
}

Examples/src/main/java/com/aspose/imaging/examples/RunExamples.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ public static void main(String[] args) throws IOException, InterruptedException,
117117
//// =====================================================
118118

119119
Logger.println("Running modifying and converting images tests:");
120+
ExtendExifMetadataForRasterImage.main(args);
120121
SupportOfDigitalSignature.main(args);
121122
AutoAdjustImageBrightness.main(args);
122123
UnifyUsageOfCommonOperations.main(args);

0 commit comments

Comments
 (0)