
Security Fundamentals
Turtles, Clams, and Cyber Threat Actors: Shell Usage
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
.. image:: https://github.com/mgedmin/imgdiff/workflows/build/badge.svg?branch=master :target: https://github.com/mgedmin/imgdiff/actions
.. image:: https://coveralls.io/repos/mgedmin/imgdiff/badge.svg?branch=master :target: https://coveralls.io/r/mgedmin/imgdiff
A command-line tool that combines two pictures into a single, larger one, and opens a GUI window (provided by the Python Imaging Library) or an external image viewer.
You could use it with a version control tool, e.g. ::
bzr diff *.png --using=imgdiff
or ::
bzr diff *.png --using='imgdiff --eog -H'
pip install imgdiff
or download it from PyPI <https://pypi.python.org/pypi/imgdiff>
_.
Run imgdiff --help
to see this help message::
Usage: imgdiff [options] image1 image2
Compare two images side-by-side
Options:
-h, --help show this help message and exit
-o OUTFILE write the combined image to a file
--viewer=COMMAND use an external image viewer (default: builtin)
--eog use Eye of Gnome (same as --viewer eog)
--grace=SECONDS seconds to wait before removing temporary file when
using an external viewer (default: 1.0)
-H, --highlight highlight differences (EXPERIMENTAL)
-S, --smart-highlight
highlight differences in a smarter way (EXPERIMENTAL)
--opacity=OPACITY minimum opacity for highlighting (default 64)
--timeout=TIMEOUT skip highlighting if it takes too long (default: 10
seconds)
--auto pick orientation automatically (default)
--lr, --left-right force orientation to left-and-right
--tb, --top-bottom force orientation to top-and-bottom
--bgcolor=RGB background color (default: fff)
--sepcolor=RGB separator line color (default: ccc)
--spacing=N spacing between images (default: 3 pixels)
--border=N border around images (default: 0 pixels)
First example::
imgdiff set1/42.png set3/
.. figure:: https://pythonhosted.org/imgdiff/example1.png :alt: example #1
Here the images are wide and short, so imgdiff decided to put them one above the other.
Same example, with highlighting enabled::
imgdiff set1/42.png set3/ -H
.. figure:: https://pythonhosted.org/imgdiff/example2.png :alt: example #2
You can see that it doesn't work very well, although it can produce nice results in simpler cases::
imgdiff set1/42.png set2/ -H
.. figure:: https://pythonhosted.org/imgdiff/example3.png :alt: example #3
The source code can be found in this Git repository: https://github.com/mgedmin/imgdiff.
To check it out, use git clone https://github.com/mgedmin/imgdiff
.
Report bugs at https://github.com/mgedmin/imgdiff/issues.
Add support for Python 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13.
Drop support for Python 2.7, 3.5 and 3.6.
Claim Python 3.6 and 3.7 support (no code changes required).
Drop Python 3.3 and 3.4 support.
Clarify the help message for the --opacity
option.
Add Python 3.5 support.
Drop Python 2.6 and 3.2 support.
Add Python 3 support.
Make the --timeout option actually work.
Drop the --selftest option. Add a real test suite with 100% coverage (which actually means little, since these are smoke tests that don't inspect the results for correctness.)
Suppress progress output if stderr is not a terminal.
Make it possible to abort --highligh/--smart-highlight logic by pressing ^C.
Abort --highlight/--smart-highlight logic if it takes longer than 10 seconds (timeout changeable with --timeout; use 0 to turn it off).
Depend on Pillow instead of PIL.
Moved to GitHub.
Accepts directory names: imgdiff dir1/img.png dir2/
.
Centers images relative to each other if they have different width/height.
Automatic orientation (--auto) uses the golden ratio (1:1.618) as its goal for desired height:width instead of a 1:1 square.
New experimental options: --highlight (-H) and --smart-highlight (-S). These highlight areas that are different and fade out areas that are similar. Or at least they try.
New options for tweaking the output: --bgcolor, --sepcolor, --spacing, --border, --opacity.
New option: --eog as alias for --viewer eog, but shorter. Guess what desktop environment I'm using. ;-)
A puny "test suite", runnable with imgdiff --selftest.
Better source code documentation via docstrings.
FAQs
Present two images side-by-side for visual comparison
We found that imgdiff demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security Fundamentals
The Socket Threat Research Team uncovers how threat actors weaponize shell techniques across npm, PyPI, and Go ecosystems to maintain persistence and exfiltrate data.
Security News
At VulnCon 2025, NIST scrapped its NVD consortium plans, admitted it can't keep up with CVEs, and outlined automation efforts amid a mounting backlog.
Product
We redesigned our GitHub PR comments to deliver clear, actionable security insights without adding noise to your workflow.