R² Innovative Software
Where Innovation is the Key to Success
🔍
HC

HEIC/HEIF Converter

v1.2

Effortless HEIC/HEIF Image Conversion

A command-line tool for converting HEIC/HEIF image files to other common image formats (JPEG, PNG, BMP, TIFF, WebP). The converter includes embedded HEIC/HEIF codecs, eliminating the need for system-wide codec installation.

Overview

HEIC/HEIF Converter is a lightweight, efficient tool for converting Apple's HEIC/HEIF image format to more widely compatible formats like JPEG and PNG. Perfect for users transitioning between ecosystems or needing to share images across platforms.

Author: R Square Innovation Software
Version: v1.2
License: GPLv3 (See LICENSE file)

Why Choose HEIC/HEIF Converter?

🔧Embedded Codecs

No need to install system-wide codecs. Everything you need is included in the application.

Fast Processing

Multi-threaded conversion for batch processing with minimal resource usage.

🔄Cross-Platform

Separate builds for Debian 9 and Debian 12/13 with full compatibility.

Features

📁Embedded Codecs

HEIC/HEIF codecs included if the system does not have them installed.

🖼️Multiple Output Formats

Convert to JPEG, PNG, BMP, TIFF, or WebP with adjustable quality settings.

📦Batch Processing

Convert entire directories of images with recursive directory processing.

Parallel Processing

Multi-threaded conversion for improved performance on modern hardware.

🏷️Preserve Metadata

Option to keep or strip EXIF data and color profiles from images.

💻Cross-Platform

Separate optimized builds for Debian 9 and Debian 12/13 systems.

Supported Formats

Input Formats

.heic, .HEIC
.heif, .HEIF

Output Formats

.jpg, .jpeg
.png
.bmp
.tiff, .tif
.webp

Installation

System Requirements

Debian 9 (Stretch)

  • GCC 6.3 or higher
  • CMake 3.7 or higher
  • Standard C++17 development libraries

Debian 12/13 (Bookworm/Trixie)

  • GCC 11 or higher
  • CMake 3.18 or higher
  • Standard C++17 development libraries

Dependencies

# Update system and install all dependencies
sudo apt-get update && sudo apt-get install -y \
    build-essential \
    cmake \
    pkg-config \
    git \
    g++ \
    make \
    libheif-dev \
    libpng-dev \
    libjpeg-dev \
    libwebp-dev \
    libtiff-dev \
    libheif1 \
    libpng16-16 \
    libjpeg-turbo8 \
    libwebp7 \
    libwebpdemux2 \
    libwebpmux3 \
    libtiff6 \
    exiftool

Build Instructions

For Debian 12/13 Systems

# Clone the repository
git clone https://github.com/R2Innovation/heic_converter
cd heic_converter_v1.0

# Run build script for Debian 12/13
./scripts/build_debian12.sh

# The executable will be in build/debian12/bin/

For Debian 9 Systems

# Clone the repository
git clone https://github.com/R2Innovation/heic_converter
cd heic_converter_v1.0

# Run build script for Debian 9
./scripts/build_debian9.sh
# The executable will be in build/debian9/bin/

Manual Build (CMake)

mkdir -p build && cd build
cmake -DDEBIAN9_BUILD=ON .. # For Debian 9

# or
cmake -DDEBIAN12_BUILD=ON .. # For Debian 12/13
make -j$(nproc)
sudo make install # Optional

Usage Guide

Basic Syntax

heic_converter [options] <input> [output]

Command Examples

Convert a single file:

heic_converter image.heic
heic_converter image.heic image.jpg
heic_converter -f png image.heic

Convert with quality adjustment:

heic_converter -q 90 image.heic
heic_converter -c 9 image.heic # PNG compression

Batch conversion:

heic_converter -r ./photos ./converted
heic_converter -t 8 -r ./input_dir ./output_dir

Overwrite existing files:

heic_converter -o image.heic image.jpg

Verbose output:

heic_converter -v image.heic

Command Line Options

Option Description Default
-f, --format FORMAT Output format (jpg, png, bmp, tiff, webp) jpg
-q, --quality N JPEG quality (1-100) 85
-c, --compression N PNG compression level (0-9) 6
-t, --threads N Threads for batch processing 4
-r, --recursive Process directories recursively false
-o, --overwrite Overwrite existing files false
-v, --verbose Enable verbose output false
--no-metadata Strip metadata from output false
-h, --help Show help message -
--version Show version information -
Performance Tips:
• Use parallel processing for batch conversions: -t 8
• Adjust quality settings for smaller file sizes
• Disable metadata if not needed: --no-metadata
• Use appropriate format for your use case

Documentation

Troubleshooting

Common Issues

"Cannot open file" error:

  • Check file permissions
  • Ensure the file is not corrupted

"Unsupported format" error:

  • Verify the file has a .heic or .heif extension
  • Try a different HEIC/HEIF file

Memory issues with large files:

  • Reduce thread count: -t 2
  • Ensure sufficient system memory

Error Codes

Code Description
0Success
1Invalid arguments
2Unsupported format
3File not found
4Read permission error
5Write permission error
6Decoding failed
7Encoding failed
8Memory allocation error
9Codec initialization error
10Batch processing error
255Unknown error

Project Structure

heic_converter_v1.0/
├── data/                    # Embedded codecs
│   ├── debian9/            # Codecs for Debian 9
│   └── debian12/           # Codecs for Debian 12/13
├── scripts/                # Build scripts
├── include/                # Header files
├── src/                    # Source files
└── tests/                  # Test suite

License

Software is licensed under GPLv3. See the LICENSE file for detailed licensing information.

Support

For issues, questions, or feature requests:

  • Check the troubleshooting section
  • Review existing issues on GitHub
  • Submit a new issue with detailed information

Download Options

🐧

Debian 12/13

Optimized for Bookworm/Trixie

Download
📦

Debian 9

Compatible with Stretch

Download
📚

Source Code

Build from source

View Source