pil_image_converter
is a Python package and CLI tool for converting images between different formats using the Pillow library. It supports conversions between JPG, PNG, BMP, and WebP formats.
Contributions always welcome!
- Convert images between JPG, PNG, BMP, and WebP formats
- Batch conversion of multiple images
- Simple command-line interface
- Skips conversion if the input and output formats are the same
- Pillow >= 11.0.0
To set up the development environment:
- Clone the repository
- Install PDM if you haven't already:
pip install pdm
- Install dependencies:
pdm install
- Convert images:
python main.py ./input_image.jpg ./output_image.png png
If you've cloned the repository or downloaded the source code, you can use the main.py
file directly:
- Navigate to the directory containing
main.py
- Run the following command:
python main.py <input_path> <output_path> <output_format>
Example:
python main.py ./input_image.jpg ./output_image.png png
For batch conversion:
python main.py ./input_directory ./output_directory png
Note: You should use quotations for paths containing spaces.
-> Ex.: python main.py "./input directory" "./output directory" jpg
You can use the pil_image_converter package directly from the command line:
python -m pil_image_converter <input_path> <output_path> <output_format>
<input_path>
: Path to the input image file or directory<output_path>
: Path to save the converted image(s)<output_format>
: Desired output format (jpg, png, bmp, or webp)
Example:
python -m pil_image_converter ./input_image.jpg ./output_image.png png
For batch conversion, provide a directory as the input path:
python -m pil_image_converter ./input_directory ./output_directory png
-
First, ensure you're working within a virtual environment with PDM:
pdm install
-
In your Python script, import the necessary functions:
from pil_image_converter import collect_images, ImageConverter
To convert a single image, use the ImageConverter class directly:
converter = ImageConverter('path/to/input/image.jpg', 'path/to/output/image.png', 'png')
converter.convert()
For batch conversion, you can pass in directories as arguments instead of individual image paths. Then, use the collect_images function and loop through the results:
from pil_image_converter import collect_images, ImageConverter
input_directory = 'path/to/input/directory'
output_directory = 'path/to/output/directory'
output_format = 'png'
image_files = collect_images(input_directory)
for input_path in image_files:
filename = os.path.basename(input_path)
name, _ = os.path.splitext(filename)
output_path = os.path.join(output_directory, f"{name}.{output_format}")
convert_image(input_path, output_path, output_format)
This project is licensed under the MIT License. See the LICENSE file for details.
3.0.0