Skip to main content

A utility to convert TIF images to PNG with optional resizing and renaming. Preserve quality of photos from apps like Adobe Lightroom while formatting files for social media sharing.

Project description

TIF to PNG Image Converter

Introduction

This Python script converts TIF images to PNG format. It allows for resizing the images to various predefined sizes (Original, 4K, 2K) and works either on a directory or individual files. It also allows for renaming the converted files based on a regex pattern extracted from the original file name.

Requirements

  • Python 3.5+
  • PIL (Pillow) library

Development

poetry is used to manage dependencies and virtual environments. GitHub Actions is used for CI/CD, with a trusted publishing connection to PyPi.

Installation

Install the convert-tif-to-png tool via pip:

pip install convert-tif-to-png

Also, ensure you have the required Pillow library:

pip install Pillow

Usage

Command Line Options

Option Description
--dir Path to directory containing TIF files to convert.
--file Path to individual TIF file(s) to convert.
--pattern Regex pattern to name converted files, extracted from the original file name.
--size Resize images to one of the following sizes: original, 4k, 2k.
--log Log output to file. Defaults to ./.log.txt

Examples

Note: You can use Python's -m flag to run a Module as a script. Module names use underscores instead of hyphens.

To process a directory:

python3 -m convert_tif_to_png --dir /path/to/directory --pattern 'some-regex-pattern' --size 4k

To process individual files:

python3 -m convert_tif_to_png --file /path/to/file1.tif /path/to/file2.tif --pattern 'some-regex-pattern' --size 4k

Regex Pattern

Regular expressions (regex) are patterns used to match and manipulate strings in text. Use RegExr to learn about, build, and test your patterns in a UI. ChatGPT is another great resource for learning Regex and building complex patterns with natural language.

The --pattern option renames converted files based on a regex pattern extracted from the original file name, excluding the file extension and preceding path information.

As an example, if you have the following files:

CANON1234.tif
CANON5678.tif
CANON8149-ENHANCED-NR.tif
CANON9322-ENHANCED-NR.tif
CANON9322-ENHANCED-NR (copy 1).tif

Use the following regex pattern to extract the file name CANON followed by a series of numbers:

--pattern 'CANON\d+'

This will result in the following file names:

CANON1234.png
CANON5678.png
CANON8149.png
CANON9322.png
CANON9322.png

Note that if there is a mismatch with the pattern, the original file name will be used.

Integration: MacOS Automator

Prerequisites

Before integrating this script into MacOS Automator, make sure you have the following prerequisites installed and configured:

  1. pyenv: A Python version management tool, used to set the Python version for the script.

  2. Python Path: You'll need the full path to your Python interpreter.

    • Finding Python Path: Run which python or which python3 in your terminal to get the full path.

Integration

To integrate this script into macOS Automator for automated file processing:

  1. Open Automator and create a new "Folder Action."
  2. Set the "Folder Action receives files and folders added to" to your desired directory.
  3. Set "Pass input" to "as arguments."
  4. Add a "Run Shell Script" action.
  5. Enter the full path to your Python interpreter and script, along with any command line arguments, like so:
/full/path/to/python3 -m convert_tif_to_png --size 4k --pattern 'some-regex-pattern' --file "$@"

Make sure you replace /full/path/to/python3 with the actual path on your system. The "$@" parameter in Automator references file(s) added to the folder.

Any new TIF files added to the specified folder will automatically be converted to PNG.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

convert_tif_to_png-1.0.6.tar.gz (5.4 kB view hashes)

Uploaded Source

Built Distribution

convert_tif_to_png-1.0.6-py3-none-any.whl (6.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page