Skip to main content

An image converter to create high quality halftone images

Project description

Halftone Converter

An image converter to create high quality halftone images

Key Features

  • Easily halftone your images
  • High-quality rendering using Cairo graphics library
  • Halftones of 3 color types – Gray, RGB, and CMYK
  • Color space transformation using ICC profiles

Colorful Play Balls

Install

pip3 install halftone-converter

Requirements

This application can be run from Python3 on any OS. Note that Pycairo requires Cairo core library.

  • Python >= 3.9
  • NumPy >= 1.24
  • Pillow >= 9.3
  • Pycairo >= 1.23
  • Rich >= 13.0

Usage

Quickstart

This application takes image files as input and outputs halftones as image files.

halftonecv INPUT.png

Synopsis

The main program can be invoked either through the halftonecv command or through the Python main module option python3 -m halftonecv. It has command line interface as shown below.

usage: halftonecv [-h] [-v] [-q] [-V] [-e] [-g]
                  [-f] [-O | -d DIR] [-P PREFIX] [-S SUFFIX]
                  [-E [START]] [-p PX] [-x SCALE] [-b [{box,gaussian}]]
                  [-B PX] [-F {nearest,linear,lanczos2,lanczos3,spline36}]
                  [-A DEG] [-t DEG DEG DEG] [-a DEG DEG DEG DEG]
                  [-m {auto,gray,rgb,cmyk}] [-o {auto,gray,rgb,cmyk}] [-T]
                  [-G GRAY_ICC_FILE] [-I RGB_ICC_FILE] [-M CMYK_ICC_FILE]
                  [-L GRAY_ICC_FILE] [-l {per,sat,rel,abs,0,1,2,3}]
                  [-R RGB_ICC_FILE] [-r {per,sat,rel,abs,0,1,2,3}]
                  [-C CMYK_ICC_FILE] [-c {per,sat,rel,abs,0,1,2,3}] [-H] [-X]
                  [--ignore] [--discard] [--opaque] [--naive] [--gamma-correction]
                  [--key RATE] [-K] [--keep-red] [--keep-green] [--keep-blue]
                  [--keep-cyan] [--keep-magenta] [--keep-yellow] [--keep-key]
                  FILE [FILE ...]

Positional Arguments

FILE

describe input image files (required), can be multiple

Pass - to specify standard input.

Input images must be in a format that Pillow can read. Also, their color mode must be Gray (L, grayscale), LA (grayscale with alpha), RGB, RGBA, P (GIF, palette based images), or CMYK.

Optional Arguments

-h, --help

show the help message and exit

-v, --version

show program's version number and exit

-q, --quiet

suppress non-error messages

-V, --traceback

render tracebacks on error

-e, --exit

stop the program immediately by an error even if jobs remain

By default, it skips failed jobs (corrupted images, etc.) and starts the next one.

-g, --glob

interpret FILE values as glob patterns (e.g., *.png, **/*.jpg)

Use this option if the shell's wildcard expansion is not available and enough. Pattern ** matches any files and zero or more directories recursively. This glob function will NOT include hidden files or directories.

-f, --force

overwrite existing files by outputs

By default, an alternate filename will be used if the original filename conflicts.

-O, --stdout

send output to standard output

Only one image can be input when using this option.

-d DIR, --directory DIR

save output images in DIR directory

The directory will be created automatically if it does not exist.

-P PREFIX, --prefix PREFIX

specify a prefix string of output filenames

-S SUFFIX, --suffix SUFFIX

specify a suffix string of output filenames

-E [START], --enumerate [START]

use consecutive numbers as output filenames

It counts up by one from START. The default START is 1.

-p PX, --pitch PX, --interval PX

arrange halftone dots at intervals of PX pixels in input images

Change this value for desired results. The default value is 4.0.

-x SCALE, -s SCALE, --scale SCALE

the scale factor of output images to input images

The default value is 1.0.

-b [{box,gaussian}], --blur [{box,gaussian}]

apply blur effect to source images

If no blur type is specified, gaussian is used.

-B PX, --blur-radius PX

specify blur radius

If not specified, half of the pitch is used.

-F {nearest,linear,lanczos2,lanczos3,spline36}, --resample {nearest,linear,lanczos2,lanczos3,spline36}

resampling method for determining dot size

The default is linear.

-A DEG, --angle DEG, --gray-angle DEG

arrange dots by DEG degrees in Gray channel

-t DEG DEG DEG, --Angles DEG DEG DEG, --rgb-angles DEG DEG DEG

arrange dots by DEG degrees in each RGB channels respectively

-a DEG DEG DEG DEG, --angles DEG DEG DEG DEG, --cmyk-angles DEG DEG DEG DEG

arrange dots by DEG degrees in each CMYK channels respectively

-m {auto,gray,rgb,cmyk}, --mode {auto,gray,rgb,cmyk}

color space type to generate halftones

The default is auto. It means that Gray images will be Gray halftones, and colored images will be CMYK halftones.

-o {auto,gray,rgb,cmyk}, --output {auto,gray,rgb,cmyk}

color space type to save output images

The default is auto. It means that Gray images will be saved as Gray images, and colored images will be saved as RGB images.

-T, --tiff, --out-tiff

save TIFF images instead of PNG images

CMYK images will always be saved in TIFF regardless of this option.

-G GRAY_ICC_FILE, --input-gray-profile GRAY_ICC_FILE

specify ICC profile for input Gray images

-I RGB_ICC_FILE, --input-rgb-profile RGB_ICC_FILE

specify ICC profile for input RGB images

-M CMYK_ICC_FILE, --input-cmyk-profile CMYK_ICC_FILE

specify ICC profile for input CMYK images

-L GRAY_ICC_FILE, --gray-profile GRAY_ICC_FILE

specify ICC profile for transform to Gray images

-l {per,sat,rel,abs,0,1,2,3}, --gray-intent {per,sat,rel,abs,0,1,2,3}

rendering intent for transform to Gray images

-R RGB_ICC_FILE, --rgb-profile RGB_ICC_FILE

specify ICC profile for transform to RGB images

-r {per,sat,rel,abs,0,1,2,3}, --rgb-intent {per,sat,rel,abs,0,1,2,3}

rendering intent for transform to RGB images

-C CMYK_ICC_FILE, --cmyk-profile CMYK_ICC_FILE

specify ICC profile for transform to CMYK images

-c {per,sat,rel,abs,0,1,2,3}, --cmyk-intent {per,sat,rel,abs,0,1,2,3}

rendering intent for transform to CMYK images

-H, --allow-huge

disable the limitation of input image size

Be careful in the context of server-side applications. This option may make DoS attacks possible (Decompression bomb).

-X, --orientation

apply Exif orientation

--ignore, --ignore-embedded-profile

don't respect ICC profiles embedded in input images

--discard, --discard-profile

don't embed ICC profiles in output images

--opaque, --discard-alpha

drop alpha channel from output

--naive, --naive-transform

use approximate color space conversion algorithm (naive transform) instead of ICC profile-based transform

--gamma-correction

apply sRGB gamma correction for RGB-CMYK conversion when the naive transform is used

--key RATE, --key-from RATE

black ingredient threshold within 0.0-1.0 for RGB-CMYK conversion when the naive transform is used

-K, --keep-all

don't convert any channels to halftones

This is useful for previewing color space transformation.

--keep-red

don't convert R channels to halftones

--keep-green

don't convert G channels to halftones

--keep-blue

don't convert B channels to halftones

--keep-cyan

don't convert C channels to halftones

--keep-magenta

don't convert M channels to halftones

--keep-yellow

don't convert Y channels to halftones

--keep-key

don't convert K channels to halftones

Gallery

RGB

Blue Hyacinths

CMYK

Todai Ramen

CMYK (Japan Color 2011 Coated)

Example with user's custom ICC profile

Anime Girl

Gray

Chevrolet Opala 87

Acknowledgments

This application contains some default ICC profiles to convert images between different color spaces. sGray.icc, sRGB.icc and SWOP.icc are provided by Artifex Software as a part of GPL Ghostscript under the GNU Affero General Public License v3.0.

License

GNU Affero General Public License v3.0

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

halftone_converter-2.6.5.tar.gz (19.4 MB view details)

Uploaded Source

Built Distribution

halftone_converter-2.6.5-py3-none-any.whl (173.3 kB view details)

Uploaded Python 3

File details

Details for the file halftone_converter-2.6.5.tar.gz.

File metadata

  • Download URL: halftone_converter-2.6.5.tar.gz
  • Upload date:
  • Size: 19.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.7

File hashes

Hashes for halftone_converter-2.6.5.tar.gz
Algorithm Hash digest
SHA256 706db2a264be41f70ac6e9d6484da72a73f860826c4ad30cf5e5ff22c256d82a
MD5 2ed8b2f6a10c5ed1637b9bbc354fb528
BLAKE2b-256 463db8551e9b8a04ef38c073ba78ab817820f13af2ec23e1415d653f5e12e98a

See more details on using hashes here.

File details

Details for the file halftone_converter-2.6.5-py3-none-any.whl.

File metadata

File hashes

Hashes for halftone_converter-2.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 df8f0b63a7ae92d9a5f22641dd7984e8072aaa8d15dc18dfbf402df3ee98c6ad
MD5 1aba62f26b909b75a0107fd8e5e022d5
BLAKE2b-256 6c6d13c97e13309aeec91f6f4b6e9a9af4d8862aaab0814ad7c505311b8f0f13

See more details on using hashes here.

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