aboutsummaryrefslogtreecommitdiff
path: root/java/TJExample.java
diff options
context:
space:
mode:
authorDRC <dcommander@users.sourceforge.net>2011-09-20 05:02:19 +0000
committerDRC <dcommander@users.sourceforge.net>2011-09-20 05:02:19 +0000
commitf5467110763f7a44ca8baf1c035eb39a68c913c6 (patch)
tree47081f39bc5e7230db398ab7d1e04985c22c3346 /java/TJExample.java
parent835b76fb656ea4af78b389e8b267405303f8d729 (diff)
downloadlibjpeg-turbo-f5467110763f7a44ca8baf1c035eb39a68c913c6.tar.gz
Implement custom filter callback in Java
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@707 632fc199-4ca6-4c93-a231-07263d6284db
Diffstat (limited to 'java/TJExample.java')
-rw-r--r--java/TJExample.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/java/TJExample.java b/java/TJExample.java
index a326c71c..36c1a8f7 100644
--- a/java/TJExample.java
+++ b/java/TJExample.java
@@ -32,12 +32,14 @@
*/
import java.io.*;
+import java.awt.*;
import java.awt.image.*;
+import java.nio.*;
import javax.imageio.*;
import javax.swing.*;
import org.libjpegturbo.turbojpeg.*;
-public class TJExample {
+public class TJExample implements TJCustomFilter {
public static final String classname = new TJExample().getClass().getName();
@@ -165,7 +167,9 @@ public class TJExample {
xform.op = TJTransform.OP_ROT180;
if(argv[i].equalsIgnoreCase("-rot270"))
xform.op = TJTransform.OP_ROT270;
- if(argv[i].length() > 2
+ if(argv[i].equalsIgnoreCase("-custom"))
+ xform.cf = new TJExample();
+ else if(argv[i].length() > 2
&& argv[i].substring(0, 2).equalsIgnoreCase("-c")) {
if(i >= argv.length - 1) usage();
String[] cropArg = argv[++i].split(",");
@@ -211,7 +215,8 @@ public class TJExample {
fis.close();
TJDecompressor tjd;
- if(xform.op != TJTransform.OP_NONE || xform.options != 0) {
+ if(xform.op != TJTransform.OP_NONE || xform.options != 0
+ || xform.cf != null) {
TJTransformer tjt = new TJTransformer(inputBuf);
TJTransform t[] = new TJTransform[1];
t[0] = xform;
@@ -303,5 +308,13 @@ public class TJExample {
}
}
+ public void customFilter(ShortBuffer coeffBuffer, Rectangle bufferRegion,
+ Rectangle planeRegion, int componentIndex, int transformIndex,
+ TJTransform transform) throws Exception {
+ for(int i=0; i<bufferRegion.width*bufferRegion.height; i++) {
+ coeffBuffer.put(i, (short)(-coeffBuffer.get(i)));
+ }
+ }
+
static TJScalingFactor sf [] = null;
};