mirror of
				https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
				synced 2025-10-30 09:35:31 +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
 | 
