Part of the new Imaging libary: works with the new ImageGenerator

This commit is contained in:
lehni 2004-06-17 09:53:03 +00:00
parent e861a86c30
commit e03a831981

View file

@ -32,7 +32,6 @@ import java.lang.reflect.Method;
* Extension to provide Helma with Image processing features. * Extension to provide Helma with Image processing features.
*/ */
public class ImageObject { public class ImageObject {
static ImageGenerator imggen;
static Scriptable global; static Scriptable global;
/** /**
@ -57,39 +56,36 @@ public class ImageObject {
Function ctorObj, boolean inNewExpr) { Function ctorObj, boolean inNewExpr) {
Object img = null; Object img = null;
try { try {
if (imggen == null) { ImageGenerator generator = ImageGenerator.getInstance();
try {
imggen = new ImageGenerator();
} catch (UnsatisfiedLinkError noawt) {
System.err.println("Error creating Image: " + noawt);
throw new RuntimeException("Error creating Image: " + noawt);
}
}
if (args.length == 1) { if (args.length == 1) {
if (args[0] instanceof NativeJavaArray) { if (args[0] instanceof NativeJavaArray) {
Object obj = ((NativeJavaArray) args[0]).unwrap(); Object array = ((NativeJavaArray) args[0]).unwrap();
if (obj instanceof byte[]) { if (array instanceof byte[]) {
img = imggen.createImage((byte[]) obj); img = generator.createImage((byte[]) array);
} }
} else if (args[0] instanceof byte[]) { } else if (args[0] instanceof byte[]) {
img = imggen.createImage((byte[]) args[0]); img = generator.createImage((byte[]) args[0]);
} else if (args[0] instanceof String) { } else if (args[0] instanceof String) {
String imgurl = args[0].toString(); String imgurl = args[0].toString();
img = imggen.createPaintableImage(imgurl); img = generator.createImage(imgurl);
} }
} else if (args.length == 2) { } else if (args.length == 2) {
if (args[0] instanceof Number && if (args[0] instanceof Number &&
args[1] instanceof Number) { args[1] instanceof Number) {
img = imggen.createPaintableImage(((Number) args[0]).intValue(), img = generator.createImage(((Number) args[0]).intValue(),
((Number) args[1]).intValue()); ((Number) args[1]).intValue());
} else if (args[0] instanceof NativeJavaObject && } else if (args[0] instanceof NativeJavaObject &&
args[1] instanceof NativeJavaObject) { args[1] instanceof NativeJavaObject) {
// create a new image from an existing one and an image filter // create a new image from an existing one and an image filter
Object wrapper = ((NativeJavaObject) args[0]).unwrap(); Object wrapper = ((NativeJavaObject) args[0]).unwrap();
if (wrapper instanceof ImageWrapper) {
Object filter = ((NativeJavaObject) args[1]).unwrap(); Object filter = ((NativeJavaObject) args[1]).unwrap();
img = imggen.createPaintableImage((ImageWrapper) wrapper, if (filter instanceof ImageFilter)
(ImageFilter) filter); img = generator.createImage((ImageWrapper) wrapper, (ImageFilter) filter);
else if (filter instanceof BufferedImageOp)
img = generator.createImage((ImageWrapper) wrapper, (BufferedImageOp) filter);
}
} else { } else {
throw new RuntimeException("Error creating Image from args "+args[0]+","+args[1]); throw new RuntimeException("Error creating Image from args "+args[0]+","+args[1]);
} }