base64的图片转为文件
//base64的图片转为文件
String base64String = obj.getString("base64");
byte[] imageBytes = java.util.Base64.getDecoder().decode(base64String);
File outputFile = null;
File tmpPathDir = new File(tmpPath);
tmpPathDir.mkdirs();
String filePath = tmpPath+"a-"+IdUtil.simpleUUID() +".jpg";
outputFile = new File(filePath);
try (FileOutputStream fos = new FileOutputStream(filePath)) {
fos.write(imageBytes);
}
使用依赖:
<dependency>
<groupId>com.drewnoakes</groupId>
<artifactId>metadata-extractor</artifactId>
<version>2.18.0</version>
</dependency>
获取文件的Metadata,并修改,保存到新的文件:
JpegImageMetadata metadata = (JpegImageMetadata) Imaging.getMetadata(outputFile);
TiffImageMetadata exif = metadata.getExif();
// 设置或更新 "Software" 属性
TiffOutputSet outputSet = exif.getOutputSet();
final TiffOutputDirectory rootDirectoryt=outputSet.getOrCreateRootDirectory();
rootDirectoryt.removeField(TiffTagConstants.TIFF_TAG_SOFTWARE);
rootDirectoryt.add(TiffTagConstants.TIFF_TAG_SOFTWARE,str2);
//写入后,保存
String outFileName = tmpPath+"b-"+IdUtil.simpleUUID()+".jpg";
outFile = new File(outFileName);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(outFile));
new ExifRewriter().updateExifMetadataLossless(outputFile, bos, outputSet);
从新生成的文件,读取内容:
int length = (int) outputFile.length();
byte[] bArr2 = new byte[length];
DataInputStream dataInputStream = new DataInputStream(new FileInputStream(outFileName));
dataInputStream.readFully(bArr2);
dataInputStream.close();
从字节转为base64:
String result = Base64.getEncoder().encodeToString(bArr2);
最后,删除临时文件:
if(outFile!=null){
outFile.delete();
}
if(outputFile!=null){
outputFile.delete();
}
标签:outputFile,java,String,206,TIFF,base64,outFile,File,new
From: https://blog.51cto.com/u_14816966/8196853