heic InputStream 转 jpg InputStream
时间: 2024-02-02 09:10:12 浏览: 91
heic2jpg:将.heic文件转换为.jpg
根据提供的引用内容,有两种方法可以将heic InputStream转换为jpg InputStream。
方法一:使用ImageIO库
```java
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class HEICtoJPGConverter {
public static InputStream convert(InputStream heicInputStream) throws IOException {
BufferedImage image = ImageIO.read(heicInputStream);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", outputStream);
return new ByteArrayInputStream(outputStream.toByteArray());
}
}
```
方法二:使用第三方库,如ImageMagick
```java
import org.apache.commons.io.IOUtils;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class HEICtoJPGConverter {
public static InputStream convert(InputStream heicInputStream) throws IOException {
ConvertCmd cmd = new ConvertCmd();
IMOperation op = new IMOperation();
op.addImage("-");
op.addImage("jpg:-");
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
InputStream outputInputStream = null;
try {
cmd.setInputProvider(() -> heicInputStream);
cmd.setOutputConsumer(outputStream::write);
cmd.run(op);
outputInputStream = new ByteArrayInputStream(outputStream.toByteArray());
} finally {
IOUtils.closeQuietly(outputStream);
IOUtils.closeQuietly(heicInputStream);
}
return outputInputStream;
}
}
```
请注意,这两种方法都需要使用相关的库和依赖项。方法一使用了Java的ImageIO库,方法二使用了ImageMagick的Java库。你需要根据你的项目需求选择适合的方法。
阅读全文