Files
the_information_nexus/smma/imagemagick.md
2024-05-31 02:33:07 +00:00

4.0 KiB

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:

/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):

    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
    source ~/.zshrc
    
  • For 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:

brew install imagemagick

Verify the installation by checking the version:

magick --version

Project Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/image-converter.git
    cd image-converter
    
  2. Make the script executable:

    chmod +x convert_images.sh
    
  3. Add an alias to your shell configuration file:

    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:

convert filename.webp

or

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:

    brew update
    
  • Upgrade installed packages:

    brew upgrade
    
  • Cleanup old versions:

    brew cleanup
    

Complete Project Code

Project Directory Structure

image-converter/
├── convert_images.sh
├── README.md
└── .gitignore

convert_images.sh

#!/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

# Ignore log files and temp files
*.log
*.tmp

Final Steps

  1. Initialize Git Repository:

    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:
      git remote add origin https://github.com/yourusername/image-converter.git
      git branch -M main
      git push -u origin main