问题描述
String base64string ="Suhnagsksbsgshsbsbshsushvshs.....etc;
从这里我需要找到一种图像类型,因为我也会得到 tiff 格式的图像,所以我无法在 chrome 浏览器上显示 tif 格式,所以我需要找出它是哪种格式,然后如果它是 tiff 我需要转换转成jpg然后显示在前端。
为此,
目前我在第二点遇到错误
byte[] decoded = op.createSignature(encryptionKey,sign[1]);
String tempfolder = System.getProperty("java.io.tmpdir");
System.out.println("tempfolder :"+tempfolder);
String tmpfilepath = tempfolder+""+new Date().getTime()+".jpeg";
System.out.println("tmpfilepath :"+tmpfilepath);
File myfile = new File(tmpfilepath);
FileOutputStream stream = new FileOutputStream(myfile);
stream.write(decoded);
stream.close();
try {
ImageInputStream iis= ImageIO.createImageInputStream(myfile);
Iterator<ImageReader> iter = ImageIO.getimageReaders(iis);
while(iter.hasNext()){
ImageReader reader = iter.next(); //throw new RuntimeException("no readers found");
String formatName = reader.getFormatName();
System.out.println("image format :"+formatName);
}
iis.close();
}
从这段代码中,迭代器没有从图像中找到任何数据,存储的图像大小为 12kb 并且无法手动打开,因为显示 cannot read this file 错误(我认为它不会打开)
如果我抛出异常,它会显示为 nosuchelementexception
我试图通过将文件路径传递给 imageinputstream
来读取示例原始图像文件我已经获得了原始文件格式,但是从 base64 字节数组无法获得相同的格式。
请建议我更改此代码中的任何内容,我不明白为什么它无法从 base64 字节数组中获取图像格式。
我使用的是 Java 1.7。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)