+ 1 к тому, что некоторые другие люди сказали, что для этого не нужна Java, но я думаю, вы, должно быть, знали об этом и, возможно, спрашивали, потому что вы либо хотели написать такую утилиту, либо думали, что это будет весело?
В любом случае, получение списка файлов изображений из директории просто, изменение их размера правильно может потребовать немного больше усилий, как вы заметите в Googling за лучшие практики и узнаете о9 различных способов изменить размер файлов.
Я написал imgscalr , чтобы решить эту проблему;Это очень простой API (один класс, куча статических методов), который хорошо зарекомендовал себя в веб-приложениях и других инструментах, использующих его.
Шаги по изменению размера будут выглядеть примерно так (примерно):
- Получить список файлов
- BufferedImage image = ImageIO.read (files [i]);
- image = Scalr.resize (image, width);
- ImageIO.write (image);
Существует множество методов "изменения размера" для вызова Scalr класса , и все они соответствуют исходным пропорциям изображения.Поэтому, если вы масштабируете только с использованием targetWidth (скажем, 1024 пикселя), высота будет рассчитана так, чтобы вы по-прежнему выглядели точно правильно.
Если вы масштабируете с шириной и высотой, но они будут нарушать пропорцииизображения и сделайте так, чтобы он выглядел «растянутым», тогда в зависимости от ориентации изображения (книжной или альбомной) одно измерение будет использоваться в качестве привязки, а другое неправильное измерение будет прозрачно пересчитано для вас.
Существует также множество различных настроек качества и режимов масштабирования FIT-TO, которые вы можете использовать, но библиотека была разработана для того, чтобы всегда «делать правильные вещи», поэтому использовать ее очень просто.
Вы можете копатьисточник, все это Apache 2 лицензируется.Вы можете видеть, что он реализует лучшие практики команды Java2D для масштабирования изображений в Java и педантично очищает себя, так что нет утечки памяти.
Надеюсь, это поможет.