/**
* 改变图片的大小到宽为size,然后高随着宽等比例变化
* @param is 上传的图片的输入流
* @param os 改变了图片的大小后,把图片的流输出到目标OutputStream
* @param size 新图片的宽
* @param format 新图片的格式
* @throws IOException
*/
public static OutputStream resizeImage(InputStream is, OutputStream os, int size, String format) throws IOException {
BufferedImage prevImage = ImageIO.read(is);
double width = prevImage.getWidth();
double height = prevImage.getHeight();
double percent = size/width;
int newWidth = (int)(width * percent);
int newHeight = (int)(height * percent);
BufferedImage image = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_BGR);
Graphics graphics = image.createGraphics();
graphics.drawImage(prevImage, 0, 0, newWidth, newHeight, null);
ImageIO.write(image, format, os);
os.flush();
is.close();
os.close();
System.out.println("操作完成");
return os;
}
public static List<String> getFiles(String path) {
List<String> files = new ArrayList<>();
File file = new File(path);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (!tempList[i].isDirectory()) {
files.add(tempList[i].getPath());
}
}
return files;
}
//测试代码
public static void main(String[] args) {
String reg = "[^\u4e00-\u9fa5]";
List<String> files = getFiles("C:\\Users\\10430\\Desktop\\a\\第六批\\第六批");
List<String> strList = new ArrayList<>();
for(int i=0; i<files.size(); i++){
System.out.println("正在操作:"+files.get(i));
try {
InputStream is = new FileInputStream(new File(files.get(i)));
String str = files.get(i).substring(33).replaceAll(reg,"").trim();
OutputStream os = new FileOutputStream(new File("C:\\Users\\10430\\Desktop\\b\\第六批\\"+str+".jpg"));
strList.add(str);
resizeImage(is, os, 1400, "jpg");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
修改图片的像素
最新推荐文章于 2023-02-09 11:34:32 发布