# 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
      ```