File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Other JSE/JEE APIs and the fly likes problems while converting Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Other JSE/JEE APIs
Bookmark "problems while converting" Watch "problems while converting" New topic
Author

problems while converting

holger Hahn
Greenhorn

Joined: Jun 14, 2005
Posts: 9
Hi @ all

I've got a problem while converting from tiff to png

here is the code and the exception
Does annybody know what the error Bad endianness tag mean
or the Error: One factory fails for the operation "tiff"
Occurs in: javax.media.jai.ThreadSafeOperationRegistry

here is the source code and the exceptions I use an ByteInputstream (ByteArraySeekableStream)

public class TestConvert {
public static void main(String []args) {
TestConvert tc = new TestConvert();
String result = tc.ConvTifPng();
System.out.println(result);
}

private String ConvTifPng(){
String sourcefilename = "4711_2.tif";
String targetfilename = "4711_2b.PNG";
File dstFile = new File("d:\\4711_2c.png/");
File srcFile = new File (sourcefilename);
byte picBytes [] = new byte [(int)srcFile.length() ];
ByteArrayOutputStream bs = new ByteArrayOutputStream();
try {

ByteArraySeekableStream bass =
new ByteArraySeekableStream picBytes);

ParameterBlock params = new ParameterBlock();
params.add(bass);
//Specify to TIFF decoder to decode images as they are and
//not to convert unsigned short images to byte images.
TIFFDecodeParam decodeParam = new TIFFDecodeParam();
decodeParam.setDecodePaletteAsShorts(true);
//Create an operator to decode the TIFF file.

RenderedOp image1 = JAI.create("tiff", params);
System.out.println("nach RenderedOP!");
//Find out the first image�s data type.

int dataType = image1.getSampleModel().getDataType();
RenderedOp image2 = null;
System.out.println("nach getSampleModel!");
if (dataType == DataBuffer.TYPE_BYTE) {
//Display the byte image as it is.
System.out.println("TIFF image is type byte.");
image2 = image1;
} else if (dataType == DataBuffer.TYPE_USHORT) {
//Convert the unsigned short image to byte image.
System.out.println("TIFF image is type ushort.");
//Setup a standard window-level lookup table. */
byte[] tableData = new byte[0x10000];
for (int i = 0; i < 0x10000; i++) {
tableData[i] = (byte)(i >> 8);
}
//Create a LookupTableJAI object to be used with the
//�lookup� operator.
LookupTableJAI table = new LookupTableJAI(tableData);
//Create an operator to lookup image1.
image2 = JAI.create("lookup", image1, table);
} else {
System.out.println("TIFF image is type" + dataType +
", and will not be displayed.");
System.exit(0);
}
// Get the width and height of image2.
int width = image2.getWidth();
int height = image2.getHeight();
System.out.println("width: " + width);
System.out.println("height: " + height);
JAI.create("encode",image2,bs,"PNG",null);



System.out.println("size of ByteArrayOutputStream"+ bs.size());
byte [] bytes = new byte[(int)bs.size()];

System.out.println("write bytes!");
bs.write(bytes);
FileOutputStream fos = new FileOutputStream(dstFile);
fos.write(bytes);
bs.close();
fos.close();

} catch (IOException e1) {
System.out.println("IOException: " + e1.getMessage());
e1.printStackTrace();
}

return "convert successfully";
}
}




Exception:
Error: One factory fails for the operation "tiff"
Occurs in: javax.media.jai.ThreadSafeOperationRegistry
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:130)
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1682)
at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:481)
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:340)
at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:830)
at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:878)
at javax.media.jai.RenderedOp.getSampleModel(RenderedOp.java:2244)
at TestConvert.ConvTifJpg(TestConvert.java:67)
at TestConvert.main(TestConvert.java:40)
Caused by: java.lang.IllegalArgumentException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codec.TIFFDirectory.getNumDirectories(TIFFDirectory.java:588)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:105)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.decodeAsRenderedImage(TIFFImageDecoder.java:109)
at com.sun.media.jai.opimage.CodecRIFUtil.create(CodecRIFUtil.java:96)
at com.sun.media.jai.opimage.TIFFRIF.create(TIFFRIF.java:53)
... 13 more
javax.media.jai.util.ImagingException: All factories fail for the operation "tiff"
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1695)
at javax.media.jai.ThreadSafeOperationRegistry.invokeFactory(ThreadSafeOperationRegistry.java:481)
at javax.media.jai.registry.RIFRegistry.create(RIFRegistry.java:340)
at javax.media.jai.RenderedOp.createInstance(RenderedOp.java:830)
at javax.media.jai.RenderedOp.createRendering(RenderedOp.java:878)
at javax.media.jai.RenderedOp.getSampleModel(RenderedOp.java:2244)
at TestConvert.ConvTifJpg(TestConvert.java:67)
at TestConvert.main(TestConvert.java:40)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at javax.media.jai.FactoryCache.invoke(FactoryCache.java:130)
at javax.media.jai.OperationRegistry.invokeFactory(OperationRegistry.java:1682)
... 7 more
Caused by: java.lang.IllegalArgumentException: Bad endianness tag (not 0x4949 or 0x4d4d).
at com.sun.media.jai.codec.TIFFDirectory.getNumDirectories(TIFFDirectory.java:588)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.getNumPages(TIFFImageDecoder.java:105)
at com.sun.media.jai.codecimpl.TIFFImageDecoder.decodeAsRenderedImage(TIFFImageDecoder.java:109)
at com.sun.media.jai.opimage.CodecRIFUtil.create(CodecRIFUtil.java:96)
at com.sun.media.jai.opimage.TIFFRIF.create(TIFFRIF.java:53)
... 13 more
Exception in thread "main"
Joe Ess
Bartender

Joined: Oct 29, 2001
Posts: 8710
    
    6

bug ID: 4996204


"blabbing like a narcissistic fool with a superiority complex" ~ N.A.
[How To Ask Questions On JavaRanch]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: problems while converting
 
Similar Threads
Multi tiff to single tiff conversion
Split multi-page tiff throwing: End of data reached before next EOL
Java Advanced Imaging
Getting the size for an img tag dynamically with struts
Image Rotation