ImageIO方法的写入文件流方案 File file = new File("文件名"); URL url = new URL(file); BufferedImage bufferedImage = ImageIO.read(url); // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生...
File file = new File("文件名");
URL url = new URL(file);
BufferedImage bufferedImage = ImageIO.read(url);
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
// 这里要注意formatName要缓存后缀名
ImageIO.write(bufferedImage, suffix, byteArrayOut);
byte[] data = byteArrayOut.toByteArray();
// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
// anchor主要用于设置图片的属性
HSSFClientAnchor anchor = new HSSFClientAnchor(0, // x缩放
0, // y缩放
1023, // 最大1023
255, // 最大255
(short) 5, // 宽度占几格 0开始
i + 4, // 在第几行
(short) 5, // 宽度占几格 0开始
i + 4 // 第几列
);
patriarch.createPicture(anchor, wb.addPicture(data, XSSFWorkbook.PICTURE_TYPE_PNG));
File file = new File("文件名");
URL url = new URL(file);
InputStream bufferedImage = url.openConnection().getInputStream();
// 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
// 这里要注意formatName要缓存后缀名
byte[] data = new byte[1024 * 300];
int length = 0;
while ((length = bufferedImage.read(data)) != -1){
byteArrayOut.write(data, 0, length);
}
bufferedImage.close();
byte[] data1 =byteArrayOut.toByteArray();
// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
// anchor主要用于设置图片的属性
HSSFClientAnchor anchor = new HSSFClientAnchor(0, // x缩放
0, // y缩放
1023, // 最大1023
255, // 最大255
(short) 5, // 宽度占几格 0开始
i + 4, // 在第几行
(short) 5, // 宽度占几格 0开始
i + 4 // 第几列
);
patriarch.createPicture(anchor, wb.addPicture(data1, XSSFWorkbook.PICTURE_TYPE_PNG));
比对发现 调优后 时间从14秒缩短到3秒
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com