diff options
author | DRC <dcommander@users.sourceforge.net> | 2011-09-20 05:02:19 +0000 |
---|---|---|
committer | DRC <dcommander@users.sourceforge.net> | 2011-09-20 05:02:19 +0000 |
commit | f5467110763f7a44ca8baf1c035eb39a68c913c6 (patch) | |
tree | 47081f39bc5e7230db398ab7d1e04985c22c3346 /java/TJExample.java | |
parent | 835b76fb656ea4af78b389e8b267405303f8d729 (diff) | |
download | libjpeg-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.java | 19 |
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; }; |