java 编程,复制图片到另一文件夹下,如何提高效率
发布网友
发布时间:2022-04-30 15:15
我来回答
共2个回答
热心网友
时间:2022-06-26 02:39
直接用文件流打开一个文件,在通过楼下说的缓冲流将文件直接写到另外一个文件就可以了
//处理JPEG的
public static String getFixedBoundIcon(String filePath) throws Exception {
//返回地址
String result = "";
//输出流
FileOutputStream out = null;
try {
File f = new File(filePath);
if (!f.isFile()) {
throw new Exception(f + " 不是图片文件!");
}
//图象文件
if (f != null && f.exists()) {
//这里的ImageIO属于java工厂类,在工厂类class里面,调用的System.gc(),频繁调用会造成mp,需要考虑优化
BufferedImage image = ImageIO.read(f); // 读入文件
if (image != null) {
BufferedImage tag =
new BufferedImage(116, 165, BufferedImage.TYPE_INT_RGB);
//绘制缩小后的图
tag.getGraphics().drawImage(image, 0, 0, 116, 165, null);
//文件地址部分
int lastLength = filePath.lastIndexOf(".");
String subFilePath = filePath.substring(0, lastLength);
String fileType = filePath.substring(lastLength);
//背景
result = subFilePath + "_116_165" + fileType;
out = new FileOutputStream(result);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param =
encoder.getDefaultJPEGEncodeParam(tag);
param.setQuality(0.95f, true); //95%图像
//像素尺寸单位.像素/英寸
param.setDensityUnit(1);
//水平分辨率
param.setXDensity(300);
//垂直分辨率
param.setYDensity(300);
encoder.setJPEGEncodeParam(param);
encoder.encode(tag);
tag = null;
}
}
f = null;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
out.close();
out = null;
}
return result;
}
还要try起来捕获异常哟
热心网友
时间:2022-06-26 02:40
用ByteBuffer缓冲