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
-
Clone the repository:
git clone https://github.com/yourusername/image-converter.git cd image-converter -
Make the script executable:
chmod +x convert_images.sh -
Add an alias to your shell configuration file:
echo "alias convert='~/path_to_your_script_directory/convert_images.sh'" >> ~/.zshrc source ~/.zshrcReplace
~/path_to_your_script_directorywith 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
-
Initialize Git Repository:
cd image-converter git init git add . git commit -m "Initial commit with image conversion script" -
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