mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 17:15:31 +00:00
grid view
This commit is contained in:
72
scripts/webp.sh
Executable file
72
scripts/webp.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user