grid view

This commit is contained in:
Simon Martens
2025-09-15 17:13:57 +02:00
parent b1840bc2ad
commit bcf11e4e11
5 changed files with 240 additions and 136 deletions

72
scripts/webp.sh Executable file
View 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