# Image Converter This project provides a script to convert WEBP and HEIC images to PNG and JPG formats using ImageMagick. ## Setup Instructions ### Prerequisites #### Install Homebrew To install Homebrew, run the following command: ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` After installation, add Homebrew to your PATH: - For **zsh** (default for macOS Catalina and later): ```bash echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc source ~/.zshrc ``` - For **bash**: ```bash echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.bash_profile source ~/.bash_profile ``` #### Install ImageMagick With Homebrew installed, run the following command to install ImageMagick: ```bash brew install imagemagick ``` Verify the installation by checking the version: ```bash magick --version ``` ### Project Setup 1. **Clone the repository**: ```bash git clone https://github.com/yourusername/image-converter.git cd image-converter ``` 2. **Make the script executable**: ```bash chmod +x convert_images.sh ``` 3. **Add an alias to your shell configuration file**: ```bash echo "alias convert='~/path_to_your_script_directory/convert_images.sh'" >> ~/.zshrc source ~/.zshrc ``` Replace `~/path_to_your_script_directory` with the actual path where you cloned the repository. ### Usage To convert a WEBP or HEIC file to PNG and JPG, use the following command: ```bash convert filename.webp ``` or ```bash convert filename.heic ``` The converted files will be saved in `~/Pictures/Converted`. ### Maintenance Commands Keep Homebrew and its packages up-to-date with the following commands: - **Update Homebrew**: ```bash brew update ``` - **Upgrade installed packages**: ```bash brew upgrade ``` - **Cleanup old versions**: ```bash brew cleanup ``` ## Complete Project Code ### Project Directory Structure ``` image-converter/ ├── convert_images.sh ├── README.md └── .gitignore ``` ### convert_images.sh ```bash #!/bin/bash # Check if the magick command is available if ! command -v magick &> /dev/null; then echo "ImageMagick is not installed or not in your PATH." exit 1 fi # Get the input file from the command line argument input_file=$1 # Check if input file is provided if [ -z "$input_file" ]; then echo "Error: No input file specified. Usage: convert file1.webp or convert file1.heic" exit 1 fi # Extract the base name and extension of the input file base_name=$(basename "$input_file" | cut -d. -f1) extension=$(basename "$input_file" | cut -d. -f2) # Define the output directory output_dir="$HOME/Pictures/Converted" # Check if the output directory exists, create if it does not if [ ! -d "$output_dir" ]; then mkdir -p "$output_dir" fi # Function to convert images convert_images() { local input_file=$1 local base_name=$2 local output_dir=$3 # Convert to PNG magick "$input_file" "$output_dir/${base_name}.png" echo "Converted $input_file to $output_dir/${base_name}.png" # Convert to JPG magick "$input_file" "$output_dir/${base_name}.jpg" echo "Converted $input_file to $output_dir/${base_name}.jpg" } # Check the file extension and convert if it is .webp or .heic if [ "$extension" = "webp" ] || [ "$extension" = "heic" ]; then convert_images "$input_file" "$base_name" "$output_dir" else echo "Error: The file must be either .webp or .heic." exit 1 fi ``` ### .gitignore ```gitignore # Ignore log files and temp files *.log *.tmp ``` ## Final Steps 1. **Initialize Git Repository**: ```bash cd image-converter git init git add . git commit -m "Initial commit with image conversion script" ``` 2. **Push to GitHub**: - Create a new repository on GitHub. - Add the remote repository and push your code: ```bash git remote add origin https://github.com/yourusername/image-converter.git git branch -M main git push -u origin main ```