Today I stumbled
across JavaXT. JavaXT is
described as
a collection of Java libraries and utilities
that provide a number of functions not available in the standard JDK. It is an
extension of the Java core, written to simplify Java development.
I needed a
library to resize images - from a good old java agent :-/ So far I used the Java Advanced Imaging API but I had issues resizing
some JPEG images. I was not able to find a correlation what caused the issues: And to be honest, my code was not very clean and neat so this was a good opportunity for improvements anyway.
Using JavaXT I refactored my whole code to very few lines to do some resizing of images and save them in a NotesDatabase.
Using JavaXT I refactored my whole code to very few lines to do some resizing of images and save them in a NotesDatabase.
This sample processes all Files in a given folder and resizes them to a fixed width of 200 pixel.
import java.io.File;
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
File[] files = new File("D:/tmp/pix/").listFiles();
for (File file : files) {
if (!file.isDirectory()) {
String srcFileName = "D:/tmp/pix/" + file.getName();
javaxt.io.Image image = new javaxt.io.Image(srcFileName);
String destFileName = "D:/tmp/pix/resize/" + file.getName();
image.setWidth(200);
image.saveAs(destFileName);
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
Job done! In a few lines of code :-)
Besides
image processing JavaXT provides a lot more, I can only recommend to check it
out.
If you have suggestions , e. g. for a better approach I am more than happy about your feedback.
If you have suggestions , e. g. for a better approach I am more than happy about your feedback.