In: computer, technology. Also: visual-hash.

Backlinks: svg, visual-hash.

Digital image

A digital image is an image composed of pixels, each with finite, discrete quantities of numeric representation for its intensity or gray level that is an output from its 2D functions fed as input by its spatial coordinates denoted with x, y on the x-axis and y-axis. Depending on whether the image resolution is fixed, it may be of vector or raster type.
By itself, the term “digital image” usually refers to raster images or bitmapped images (as opposed to vector images).

Formats

I won’t be listing popular formats like JPEG, PNG, etc.
I’m just interested in the less known, “exotic” formats here.

Brunsli

Brunsli is a lossless JPEG repacking library (.brn ext)
https://github.com/google/brunsli
https://brunsli.dev
https://aur.archlinux.org/packages/brunsli

CHR

CHR is a 2-bit graphic format for Famicom and Uxn spritesheets.
http://wiki.xxiivv.com/site/chr_format.html

Farbfeld

Lossless image format which is easy to parse, pipe and compress (.ff ext)
http://tools.suckless.org/farbfeld
https://git.suckless.org/farbfeld
https://aur.archlinux.org/packages/farbfeld
https://packages.ubuntu.com/search?keywords=farbfeld

ICN

ICN is a 1-bit graphic format.
The ICN file contains a series of bits equivalent to pixels in a 8x8 tile.
http://wiki.xxiivv.com/site/icn_format.html

PPM, PBM

Netpbm (formerly Pbmplus) is an open-source package of graphics programs and a programming library.
It is used mainly in the Unix world, where one can find it included in all major open-source operating system distributions, but also works on Windows, macOS, and others.
Several graphics formats are used and defined by the Netpbm project:

https://wikipedia.org/wiki/Netpbm

QOI

The “Quite OK Image” format for fast, lossless image compression
Single-file MIT licensed library for C/C++
https://github.com/phoboslab/qoi
https://qoiformat.org
https://docs.rs/qoi/latest/qoi

QOIR

Simple, lossless image file format that is very fast to encode and decode while achieving compression ratios roughly comparable to PNG.
It was inspired by the QOI image file format.
https://github.com/nigeltao/qoir

Editing

Photopea online image editor

Free online tool for editing raster and vector graphics with support for PSD, AI, and Sketch files
Photopea is not fully open-source
https://photopea.com
https://blog.photopea.com
https://github.com/photopea/photopea

Graphite

Graphite is an in-development raster and vector 2D graphics editor that is free and open source
It is powered by a node graph compositing engine that supercharges your layer stack, providing a completely non-destructive editing experience
https://graphite.rs

Pixlr

Kinda free, but not very useful unless you pay
https://pixlr.com

Canva

Design logos, flyers, banners, collages, etc
Kinda free, but not very useful unless you pay
https://canva.com

Compression

Images done right: Web graphics, good to the last byte
There is no such thing as perfect compression, there’s only the one that fits your use case.
Evil Martians’ Big image compression cookbook:
https://evilmartians.com/chronicles/images-done-right-web-graphics-good-to-the-last-byte-optimization-techniques

Compression.ai

NOT free, need to pay
Compress images without compromising on quality or resolution. Reduce storage and bandwidth costs. Faster image delivery. Use our API or deploy on your infrastructure.
https://compression.ai

E-mage

E-mage (Electron + Image Compression + Magic)
From developers to developers: a cross-platform tool for losslessly image compression
https://emage.js.org
pacman -S libjpeg-turbo jpegoptim
yay -S mozjpeg

Hific

High-Fidelity generative image compression
We combine Generative Adversarial Networks with learned compression to obtain a state-of-the-art generative lossy compression system
In the paper, we investigate normalization layers, generator and discriminator architectures, training strategies, as well as perceptual losses:
https://hific.github.io

Imager

Image compression for efficiently distributing images on the web:
https://imager.io
https://github.com/imager-io/imager

JPEGmini

Reduce image file size without compromising quality.
Get the smallest image file size without compromising quality or changing your workflow. You can upload Hi-Res photos faster, save tons of hard drive space, improve customer viewing experience and make your website faster.
https://jpegmini.com

Lepton

A tool and file format for losslessly compressing JPEGs by an average of 22%
https://github.com/dropbox/lepton
https://dropbox.tech/infrastructure/lepton-image-compression-saving-22-losslessly-from-images-at-15mbs

MozJPEG

MozJPEG improves JPEG compression efficiency achieving higher visual quality and smaller file sizes at the same time.
It is compatible with the JPEG standard, and the vast majority of the world’s deployed JPEG decoders.
https://github.com/mozilla/mozjpeg

OxiPNG

Oxipng began as a complete rewrite of the OptiPNG project, which was assumed to be dead as no commit had been made to it since March 2014 (OptiPNG has since released a new version, after Oxipng was first released)
The core goal of rewriting OptiPNG was to implement multithreading, which would be very difficult to do within the existing C codebase of OptiPNG. This also served as an opportunity to choose a more modern, safer language (Rust)
https://github.com/shssoichiro/oxipng

py-XMP-tool

Read/ write XMP tags
https://github.com/gaqzi/py-xmp-tool

Raisr

Google RAISR

Squoosh

Make images smaller using best-in-class codecs, browser & CLI.
Squoosh has an API and a CLI to compress many images at once.
https://squoosh.app
https://github.com/GoogleChromeLabs/squoosh

TinyPNG

Smart PNG and JPEG compression:
Smart lossy compression techniques to reduce the file size. By selectively decreasing the number of colors in the image, fewer bytes are required to store the data.
https://tinypng.com

VerExif

Check and remove EXIF data online
https://verexif.com

Upscaling

Upscayl

Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy
NOTE: Doesn’t work without a GPU, sorry. You’ll need a Vulkan compatible GPU to upscale images. CPU or iGPU won’t work.
https://github.com/upscayl/upscayl

UpscalerJS

Image Upscaling in Javascript. Increase image resolution up to 4x using Tensorflow.js
https://github.com/thekevinscott/UpscalerJS

Diff

Smallest, simplest and fastest JavaScript pixel-level image comparison library, originally created to compare screenshots in tests
Accurate anti-aliased pixels detection and perceptual color difference metrics:
https://github.com/mapbox/pixelmatch

Analyse and compare images with Javascript and HTML5:
https://github.com/rsmbl/Resemble.js

Differentiate images in Python; Get a ratio or percentage difference, and generate a diff image:
https://github.com/nicolashahn/diffimg

Python image similarity comparison using several techniques:
https://github.com/petermat/image_similarity

Lightweight image comparison tool, from Yahoo!
https://github.com/yahoo/blink-diff

Articles

Low bandwidth images

How to make the images much much smaller, faster to load
https://opguides.info/posts/lowbandwidthimages

Dithering algorithms for arbitrary palettes in Python PIL

https://github.com/hbldh/hitherdither

Best image formats for archival photography

Updated may 27, 2016
https://digitalarch.org/blog/2017/4/7/best-image-formats-for-archival-photography

Archive file formats comparison

By Richard Anderson, updated september 22, 2015
https://dpbestflow.org/file-format/archive-file-formats

Stop blurring your sensitive information in screenshots

That pixilated address or birth date isn’t as hidden as you think it is
https://lifehacker.com/stop-blurring-your-sensitive-information-in-screenshots-1848626457
https://bishopfox.com/blog/unredacter-tool-never-pixelation

The hidden fingerprint inside your photos

https://bbc.com/future/article/20210324-the-hidden-fingerprint-inside-your-photos
> metadata from photos, there’s tons of data in there
> image analysis, photo forensics
> But metadata is not the only thing hidden in your photos. There is also a unique personal identifier linking every image you capture to the specific camera used, but it’s one you’d probably never suspect. Even professional photographers might not realise or remember that it’s there.
> Photo response non-uniformity, however, is far more difficult to extricate
> Fridrich has patented the photo fingerprinting technique, and it has been officially approved for use as forensic evidence in court cases in the United States. It means investigators can identify manipulated areas, associate it with a specific camera device, or establish its processing history.
> Many colour printers add secret tracking dots to documents: virtually invisible yellow dots that reveal a printer’s serial number, as well as the date and time a document was printed. In 2017, these dots may have been used by the FBI in the identification of Reality Winner as the source of a leaked National Security Agency document.

How to read and remove metadata from your photos with Python

Smartphones include EXIF metadata in their photos. Here’s how to read, write, and erase it using Python
https://auth0.com/blog/read-edit-exif-metadata-in-photos-with-python

Adobe Lightroom endangering photo-journalists and their sources?

https://dpreview.com/forums/post/66005404

Thought you could export a JPEG from Adobe Lightroom without identifying metadata? A reasonable assumption, given that the export dialog explicitly has a “Include: Copyright Only” in the metadata section.
However, it turns out that even when choosing this option Adobe still plants unique identifiers in the image as well as a very detailed version identifier of the software component used to process it, under Adobe’s own XMP metadata section in the resulting JPEG.
These are the tags in question:

  • Xmp.xmpMM.OriginalDocumentID

  • Xmp.xmpMM.DocumentID

  • Xmp.xmpMM.InstanceID

  • Xmp.xmp.MetadataDate

The first three contain a unique identifier for the image which can be used to relate several crops of the same master image and possibly identify related images exported by the same photographer and to track the proliferation of those image across the Internet.
The last field discloses the date and time at which the exported image was generated.
In addition, an attribute of the ‘xmpmeta’ tag, by the name of ‘x:xmptk’ is included with a detailed version string beginning with of ‘Adobe XMP Core …’ which many metadata tools including the venerable exiv2 are unaware of and do not display.

Q&A about image fingerprinting & similarity

North Korea’s propaganda photographers rely on the Nikon D750

By Jaron Schneider, published 21-mar-2022
https://petapixel.com/2022/03/21/north-koreas-propaganda-photographers-rely-on-the-nikon-d750
A new report that looked at the EXIF data from the North Korean state media photos has given some insight into what equipment photographers in the country are using.
Nikon was the most favored last year, specifically the 2014 D750 DSLR.

Extracting EXIF data from North Korean state media photos can give insight into what equipment photographers in the country use.
Nikon cameras were the most favored last year, with the employment of older models possibly suggesting limited resources – https://t.co/vDhq9skxBt

https://nknews.org/pro/why-nikon-was-north-koreas-favorite-camera-in-2021
Why Nikon was North Korea’s favorite camera in 2021
State media metadata reveals the serious hardware that DPRK photographers use to create regime propaganda

Extracting data from images in presentations

By Alexandru Mortan, published 20-aug-2019
https://endava.com/en/blog/Engineering/2019/Extracting-Data-from-Images-in-Presentations
The problem with presentations, regions of interest (ROI) detection, Image preparation, image processing, ROI identification, Bounding Boxes, Image cropping, Image pre-processing
https://arxiv.org/abs/1704.03155 – EAST: an efficient and accurate scene text detector

Links

A selection of Free/Libre Open Source Software projects related to photography:
https://pixls.us/software

AI-Powered Photos app for the decentralized web
https://github.com/photoprism/photoprism

Self-hosted open source photo management service
https://github.com/LibrePhotos/librephotos

Zenphoto open-source gallery and CMS project
https://github.com/zenphoto/zenphoto

Refs

×