mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-28 16:45:32 +00:00
73 lines
1.9 KiB
Bash
Executable File
73 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# PNG to WebP conversion script with quality set to 80%
|
|
# Usage: ./png_to_webp.sh [folder_path]
|
|
|
|
# Check if folder argument is provided
|
|
if [ $# -eq 0 ]; then
|
|
echo "Usage: $0 [folder_path]"
|
|
echo "Converts all PNG files in the specified folder to WebP format with 80% quality"
|
|
exit 1
|
|
fi
|
|
|
|
# Check if the folder exists
|
|
if [ ! -d "$1" ]; then
|
|
echo "Error: Folder '$1' does not exist."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if cwebp is installed
|
|
if ! command -v cwebp &> /dev/null; then
|
|
echo "Error: cwebp is not installed. Please install it with:"
|
|
echo "sudo apt install webp"
|
|
exit 1
|
|
fi
|
|
|
|
# Change to the specified directory
|
|
cd "$1"
|
|
|
|
# Count PNG files
|
|
png_count=$(find . -maxdepth 1 -name "*.png" | wc -l)
|
|
if [ "$png_count" -eq 0 ]; then
|
|
echo "No PNG files found in the specified folder."
|
|
exit 0
|
|
fi
|
|
|
|
echo "Found $png_count PNG files in '$1'"
|
|
echo "Converting to WebP with 80% quality..."
|
|
|
|
# Convert all PNG files to WebP with 80% quality
|
|
converted=0
|
|
for file in *.png; do
|
|
if [ -f "$file" ]; then
|
|
output_file="${file%.png}.webp"
|
|
echo "Converting: $file → $output_file"
|
|
cwebp -q 80 "$file" -o "$output_file" > /dev/null 2>&1
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ Success: $output_file"
|
|
((converted++))
|
|
else
|
|
echo "✗ Failed to convert: $file"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo "Conversion complete: $converted of $png_count files converted successfully."
|
|
|
|
# Optional: Display file size comparison
|
|
if [ "$converted" -gt 0 ]; then
|
|
echo ""
|
|
echo "File size comparison:"
|
|
for file in *.webp; do
|
|
if [ -f "$file" ]; then
|
|
original="${file%.webp}.png"
|
|
if [ -f "$original" ]; then
|
|
original_size=$(du -h "$original" | cut -f1)
|
|
webp_size=$(du -h "$file" | cut -f1)
|
|
echo "$original: $original_size → $file: $webp_size"
|
|
fi
|
|
fi
|
|
done
|
|
fi
|