public static void main(String[] args) {
File dir = new File("D:\\screenshots");
convert(readFiles(dir));
// convert(dir);
}
public static void convert(ArrayList<String> Image) {
File dir = new File("D:\\screenshots");
for (String element:Image) {
try {
//Считываем изображение в буфер
BufferedImage bufferedImage = ImageIO.read(new File(dir + "\\" + element));
// создаем пустое изображение RGB, с тай же шириной высотой и белым фоном
BufferedImage newBufferedImage = new BufferedImage(bufferedImage.getWidth(),
bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(bufferedImage, 0, 0, Color.WHITE, null);
// записываем новое изображение в формате jpg
ImageIO.write(newBufferedImage, "jpg", new File("D:\\screen\\" + element));
System.out.println("Готово!");
} catch (IOException e) {
e.printStackTrace();
System.out.println(element);
}
}
}
public static ArrayList<String> readFiles(File baseDirectory){
ArrayList<String> list = new ArrayList<>();
if (baseDirectory.isDirectory()){
for (File file : baseDirectory.listFiles()) {
if(file.isFile()){
list.add(file.getName());
}else {
readFiles(file);
}
}
}
return list;
}
}
что бы сделать не как сейчас подсовываю на 2 и 9 строках Anonymous #2469142
18 уровень
как можно поравить код чтобы параметр dir нужно было писать только один раз в параметрах при вызове метода convert?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KIRAExpert
5 января 2021, 03:36решение
Объявить ее в классе?
Ну или добавить ее в сигнатуру метода, тогда 9 строку можно удалить
+2
Anonymous #2469142
5 января 2021, 06:46
забыл про то что надо объявить переменную как статическую если объявлять ее в классе. Спасибо этот вопрос решен)
0