Skip to content

Commit a131e88

Browse files
authored
Merge pull request #34 from iamnehalien29/main
Bulk image resizer
2 parents 8845c63 + 0d0971c commit a131e88

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import java.awt.Graphics2D;
2+
import java.awt.Image;
3+
import java.awt.image.BufferedImage;
4+
import java.io.File;
5+
import javax.imageio.ImageIO;
6+
7+
public class BatchResizeImages {
8+
9+
public static void main(String[] args) {
10+
if (args.length != 4) {
11+
System.out.println("Usage: java BatchResizeImages <input_folder> <output_folder> <width> <height>");
12+
return;
13+
}
14+
15+
String inputFolder = args[0];
16+
String outputFolder = args[1];
17+
int width = Integer.parseInt(args[2]);
18+
int height = Integer.parseInt(args[3]);
19+
20+
File inputDir = new File(inputFolder);
21+
if (!inputDir.exists() || !inputDir.isDirectory()) {
22+
System.out.println("Input directory does not exist: " + inputFolder);
23+
return;
24+
}
25+
26+
File outputDir = new File(outputFolder);
27+
if (!outputDir.exists()) {
28+
outputDir.mkdirs();
29+
}
30+
31+
File[] files = inputDir.listFiles((_, name) -> name.toLowerCase().endsWith(".jpg") ||
32+
name.toLowerCase().endsWith(".jpeg") ||
33+
name.toLowerCase().endsWith(".jpg") ||
34+
name.toLowerCase().endsWith(".png"));
35+
36+
if (files == null || files.length == 0) {
37+
System.out.println("No image files found in: " + inputFolder);
38+
return;
39+
}
40+
41+
for (File file : files) {
42+
try {
43+
BufferedImage original = ImageIO.read(file);
44+
if (original == null) {
45+
System.out.println("Skipping unreadable file: " + file.getName());
46+
continue;
47+
}
48+
49+
Image scaled = original.getScaledInstance(width, height, Image.SCALE_SMOOTH);
50+
BufferedImage resized = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
51+
52+
Graphics2D g2d = resized.createGraphics();
53+
g2d.drawImage(scaled, 0, 0, null);
54+
g2d.dispose();
55+
56+
String format = file.getName().toLowerCase().endsWith(".png") ? "png" : "jpg";
57+
File outputFile = new File(outputDir, file.getName());
58+
ImageIO.write(resized, format, outputFile);
59+
60+
System.out.println("✅ Resized: " + file.getName());
61+
} catch (Exception e) {
62+
System.out.println("❌ Error processing " + file.getName() + ": " + e.getMessage());
63+
}
64+
}
65+
66+
System.out.println("\n🎉 All done! Resized images saved to: " + outputDir.getAbsolutePath());
67+
}
68+
}
482 KB
Loading
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package input;
2+
3+
public interface BatchResizeImages {
4+
5+
}
6.39 MB
Loading
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import os
2+
from PIL import Image
3+
4+
def batch_resize_images(input_folder, output_folder, target_width, target_height):
5+
if not os.path.exists(output_folder):
6+
os.makedirs(output_folder)
7+
# Process only JPG, JPEG, PNG files
8+
for filename in os.listdir(input_folder):
9+
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
10+
input_path = os.path.join(input_folder, filename)
11+
output_path = os.path.join(output_folder, filename)
12+
try:
13+
with Image.open(input_path) as img:
14+
img_resized = img.resize((target_width, target_height))
15+
img_resized.save(output_path)
16+
print(f"Resized: {filename}")
17+
except Exception as e:
18+
print(f"Error processing {filename}: {e}")
19+
20+
# Example usage
21+
# batch_resize_images("input_folder_path", "output_folder_path", 800, 600)

0 commit comments

Comments
 (0)