i tried convert tiff image byte[] getting exception java 1.8 sdk. searched in google did not solution yet. same code works java 1.6.
public static byte[] convertimage(string dirname, string imagename) { try { //string dirname="c:\\temp\\"; bytearrayoutputstream baos=new bytearrayoutputstream(1000); bufferedimage img=imageio.read(new file(dirname,imagename)); imageio.write(img, "tif", baos); baos.flush(); byte[] bytearray = baos.tobytearray(); baos.close(); return bytearray; } catch(ioexception ioe) { ioe.printstacktrace(); } catch(exception ex) { ex.printstacktrace(); } return null; } variable img null in java 1.8 1.6 returns info.
exception raised sdk 1.8 follows
java.lang.illegalargumentexception: image == null! @ javax.imageio.imagetypespecifier.createfromrenderedimage(unknown source) @ javax.imageio.imageio.getwriter(unknown source) @ javax.imageio.imageio.write(unknown source) @ test.practice.net.converterimageusing18.convertimage(converterimageusing18.java:88) @ test.practice.net.converterimageusing18.getbase64binaryasstring(converterimageusing18.java:52) @ test.practice.net.converterimageusing18.main(converterimageusing18.java:42) any hits or sample code appreciable.
imageio needs additional plugin read or write tiff. built-in formats bmp, gif, jpeg, png , wbmp. read or write tiff, can use jai (jai_imageio.jar), twelvemonkeys imageio or similar.
without suitable plugin, imageio.read(...) returns null. reason why img null (and exception). might have jai or similar installed in java 1.6 jre, or may testing different file.
however, if want bytes of original file, there's no need use imageio @ all. read bytes file byte array, example this:
file file = new file(dirname, imagename); int length = (int) file.length(); byte[] bytes = new byte[length]; try (datainputstream input = new datainputstream(new fileinputstream(file))) { input.readfully(bytes); } or in java 8, can write more elegant (thanks, @joopeggen):
file file = new file(dirname, imagename); byte[] bytes = files.readallbytes(file.topath());
Comments
Post a Comment