import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStreamImpl;
import javax.imageio.stream.MemoryCacheImageInputStream;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.Base64;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
private List<String> tiffToBase64(byte[] bytes) {
List<String> list = new LinkedList<>();
try {
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
ImageInputStreamImpl imageInputStream = new MemoryCacheImageInputStream(byteArrayInputStream);
Iterator<ImageReader> tiff = ImageIO.getImageReadersByFormatName("tiff");
ImageReader reader = tiff.next();
reader.setInput(imageInputStream);
int numImages = reader.getNumImages(true);
for (int i = 0; i < numImages; i++) {
BufferedImage read = reader.read(i);
try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
ImageIO.write(read, "jpg", stream);
byte[] encode = Base64.getEncoder().encode(stream.toByteArray());
String data = "data:image/jpg;base64," + new String(encode);
list.add(data);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
tiff转换为base64
于 2020-11-03 17:13:52 首次发布