{ "info": { "author": "Marius Gedminas", "author_email": "marius@gedmin.as", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Multimedia :: Graphics" ], "description": "imgdiff\n=======\n\nA command-line tool that combines two pictures into a single, larger\none, and opens a GUI window (provided by the Python Imaging Library)\nor an external image viewer.\n\nYou could use it with a version control tool, e.g. ::\n\n bzr diff *.png --using=imgdiff\n\nor ::\n\n bzr diff *.png --using='imgdiff --eog -H'\n\n\nInstallation\n------------\n\n``pip install imgdiff`` or `download it from PyPI\n`_.\n\n\nUsage\n-----\n\nRun ``imgdiff --help`` to see this help message::\n\n Usage: imgdiff [options] image1 image2\n\n Compare two images side-by-side\n\n Options:\n -h, --help show this help message and exit\n -o OUTFILE write the combined image to a file\n --viewer=COMMAND use an external image viewer (default: builtin)\n --eog use Eye of Gnome (same as --viewer eog)\n --grace=SECONDS seconds to wait before removing temporary file when\n using an external viewer (default: 1.0)\n -H, --highlight highlight differences (EXPERIMENTAL)\n -S, --smart-highlight\n highlight differences in a smarter way (EXPERIMENTAL)\n --opacity=OPACITY minimum opacity for highlighting (default 64)\n --timeout=TIMEOUT skip highlighting if it takes too long (default: 10\n seconds)\n --auto pick orientation automatically (default)\n --lr, --left-right force orientation to left-and-right\n --tb, --top-bottom force orientation to top-and-bottom\n --bgcolor=RGB background color (default: fff)\n --sepcolor=RGB separator line color (default: ccc)\n --spacing=N spacing between images (default: 3 pixels)\n --border=N border around images (default: 0 pixels)\n\n\nOutput Examples\n---------------\n\nFirst example::\n\n imgdiff set1/42.png set3/\n\n.. figure:: https://pythonhosted.org/imgdiff/example1.png\n :alt: example #1\n\nHere the images are wide and short, so imgdiff decided to put them one above\nthe other.\n\nSame example, with highlighting enabled::\n\n imgdiff set1/42.png set3/ -H\n\n.. figure:: https://pythonhosted.org/imgdiff/example2.png\n :alt: example #2\n\nYou can see that it doesn't work very well, although it can produce nice\nresults in simpler cases::\n\n imgdiff set1/42.png set2/ -H\n\n.. figure:: https://pythonhosted.org/imgdiff/example3.png\n :alt: example #3\n\n\nSupport and Development\n-----------------------\n\nThe source code can be found in this Git repository:\nhttps://github.com/mgedmin/imgdiff.\n\nTo check it out, use ``git clone https://github.com/mgedmin/imgdiff``.\n\nReport bugs at https://github.com/mgedmin/imgdiff/issues.\n\n\n\nChanges\n=======\n\n1.7.1 (2019-04-23)\n------------------\n\n- Claim Python 3.6 and 3.7 support (no code changes required).\n\n- Drop Python 3.3 and 3.4 support.\n\n\n1.7.0 (2016-09-17)\n------------------\n\n- Clarify the help message for the ``--opacity`` option.\n\n- Add Python 3.5 support.\n\n- Drop Python 2.6 and 3.2 support.\n\n\n1.6.0 (2014-12-01)\n------------------\n\n- Add Python 3 support.\n\n- Make the --timeout option actually work.\n\n- Drop the --selftest option. Add a real test suite with 100% coverage\n (which actually means little, since these are smoke tests that don't\n inspect the results for correctness.)\n\n\n1.5.0 (2013-08-11)\n------------------\n\n- Suppress progress output if stderr is not a terminal.\n\n- Make it possible to abort --highligh/--smart-highlight logic by pressing ^C.\n\n- Abort --highlight/--smart-highlight logic if it takes longer than 10 seconds\n (timeout changeable with --timeout; use 0 to turn it off).\n\n\n1.4.1 (2013-08-09)\n------------------\n\n- Depend on Pillow instead of PIL.\n\n- Moved to GitHub.\n\n\n1.4.0 (2010-12-19)\n------------------\n\n- Accepts directory names: ``imgdiff dir1/img.png dir2/``.\n\n- Centers images relative to each other if they have different width/height.\n\n- Automatic orientation (--auto) uses the golden ratio (1:1.618) as its goal\n for desired height:width instead of a 1:1 square.\n\n- New experimental options: --highlight (-H) and --smart-highlight (-S).\n These highlight areas that are different and fade out areas that are\n similar. Or at least they try.\n\n- New options for tweaking the output: --bgcolor, --sepcolor, --spacing,\n --border, --opacity.\n\n- New option: --eog as alias for --viewer eog, but shorter. Guess what\n desktop environment I'm using. ;-)\n\n- A puny \"test suite\", runnable with imgdiff --selftest.\n\n- Better source code documentation via docstrings.\n\n\n1.3.0 (2010-12-18)\n------------------\n\n- First public release. Options supported: -o, --viewer, --grace, --auto,\n --lr, --tb, --help.\n\n\n", "description_content_type": "", "docs_url": "https://pythonhosted.org/imgdiff/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/mgedmin/imgdiff", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "imgdiff", "package_url": "https://pypi.org/project/imgdiff/", "platform": "", "project_url": "https://pypi.org/project/imgdiff/", "project_urls": { "Homepage": "https://github.com/mgedmin/imgdiff" }, "release_url": "https://pypi.org/project/imgdiff/1.7.1/", "requires_dist": [ "Pillow" ], "requires_python": "", "summary": "Present two images side-by-side for visual comparison", "version": "1.7.1" }, "last_serial": 5176620, "releases": { "1.3.0": [ { "comment_text": "", "digests": { "md5": "2fbe99dbec8c31aed45bdf8355047163", "sha256": "b71a87f27f0a434c15c332779b1905860f04d0c62dc39666e0c0c911cfa5bdb2" }, "downloads": -1, "filename": "imgdiff-1.3.0.tar.gz", "has_sig": false, "md5_digest": "2fbe99dbec8c31aed45bdf8355047163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4487, "upload_time": "2010-12-18T04:22:36", "url": "https://files.pythonhosted.org/packages/33/41/7718d10612a29f4304a1263f5f3340974bebcc851665e8dc73843490afe3/imgdiff-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "4c573ce7ef56d7dfd572a705e08760c5", "sha256": "8dd12098555c7d9f415cc46e5ea1e5c55ff35745d2bb4551cbc5fd229208e8a7" }, "downloads": -1, "filename": "imgdiff-1.4.0.tar.gz", "has_sig": false, "md5_digest": "4c573ce7ef56d7dfd572a705e08760c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1341458, "upload_time": "2010-12-19T01:33:09", "url": "https://files.pythonhosted.org/packages/91/27/13f7436b72dc340ef156d4827de9062b36dbec93fcbea6e74d01be81f296/imgdiff-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "a7f7414c638cdd996aaed850378495f9", "sha256": "98ce51b0136c1a3ffb62acaf28451fc8b425ece01611b3c20dc897fca0589ce9" }, "downloads": -1, "filename": "imgdiff-1.4.1.tar.gz", "has_sig": false, "md5_digest": "a7f7414c638cdd996aaed850378495f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1342200, "upload_time": "2013-08-09T09:24:18", "url": "https://files.pythonhosted.org/packages/a3/6b/03bc0a05f31e68a40fe94fa1ff3c85566b50e90a55ef39afb363ad663b6c/imgdiff-1.4.1.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "8041fcc6601a44322cd86aa78a6a1a82", "sha256": "ce243b636ed692bbfaf29213dd0835afa4a439fbb98eed2d23e71142ecefae1e" }, "downloads": -1, "filename": "imgdiff-1.5.0.tar.gz", "has_sig": false, "md5_digest": "8041fcc6601a44322cd86aa78a6a1a82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1343004, "upload_time": "2013-08-11T09:52:34", "url": "https://files.pythonhosted.org/packages/2b/05/01fedee50064945f612bb58fb63753b1cc29dfc161a9a0da7abb76f307ac/imgdiff-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "22d84f61852314819d629a5fbeb96d1f", "sha256": "5ef9736bba93a78bdd1817f7c7daa368cb3f7a697c89e432d89565d8fe6e1f8a" }, "downloads": -1, "filename": "imgdiff-1.6.0.tar.gz", "has_sig": false, "md5_digest": "22d84f61852314819d629a5fbeb96d1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1345516, "upload_time": "2014-12-01T16:49:18", "url": "https://files.pythonhosted.org/packages/16/65/f1271ae503159933b66d09036201ea571b967e01de9fd4ffe0b8b8e28ccf/imgdiff-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "9f8384db591b6025b0646ba39043c0bc", "sha256": "daa42bc05751599c29937698e7d6b14bcee38c8cadad62f1b92818afbba127a5" }, "downloads": -1, "filename": "imgdiff-1.7.0-py2-none-any.whl", "has_sig": false, "md5_digest": "9f8384db591b6025b0646ba39043c0bc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12385, "upload_time": "2016-09-17T15:42:30", "url": "https://files.pythonhosted.org/packages/66/9a/b73369343c723008db70192e430f42d76d628d007adfa681cf6e52454f04/imgdiff-1.7.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72cbbd8ec1181c5ea1c15c8e8b723988", "sha256": "703b4c7b2ebe3c8cbf11b824303c53567a7c8b8602a12045937e867862bf46e9" }, "downloads": -1, "filename": "imgdiff-1.7.0.tar.gz", "has_sig": false, "md5_digest": "72cbbd8ec1181c5ea1c15c8e8b723988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1348974, "upload_time": "2016-09-17T15:42:35", "url": "https://files.pythonhosted.org/packages/3d/7f/7114734b8ab10903afbb84acfa43c0103a071c3beef7e05135cd9ece0498/imgdiff-1.7.0.tar.gz" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "0c5ad45f6b6a1853509df8b1981a1f66", "sha256": "b9a875abdc5160e23a2058f204e29954dccfed4b8b2fb941fc82c03c2c753f96" }, "downloads": -1, "filename": "imgdiff-1.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c5ad45f6b6a1853509df8b1981a1f66", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10328, "upload_time": "2019-04-23T10:55:33", "url": "https://files.pythonhosted.org/packages/98/ae/041a807cb4b308fd1456d333e352a589abbdfd78ce1556819d406b7f1c4f/imgdiff-1.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81d0744f7834bcfe2d2ac66995269376", "sha256": "c8f947c84f8575009911b005ccd7a0e7edd6e53e8b07a623e4bac23df1419c9e" }, "downloads": -1, "filename": "imgdiff-1.7.1.tar.gz", "has_sig": false, "md5_digest": "81d0744f7834bcfe2d2ac66995269376", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1350841, "upload_time": "2019-04-23T10:55:36", "url": "https://files.pythonhosted.org/packages/ff/f5/4789c19481b4d215bb351025827f37fb9c062fb11053c3d28406e9d273fe/imgdiff-1.7.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0c5ad45f6b6a1853509df8b1981a1f66", "sha256": "b9a875abdc5160e23a2058f204e29954dccfed4b8b2fb941fc82c03c2c753f96" }, "downloads": -1, "filename": "imgdiff-1.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c5ad45f6b6a1853509df8b1981a1f66", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10328, "upload_time": "2019-04-23T10:55:33", "url": "https://files.pythonhosted.org/packages/98/ae/041a807cb4b308fd1456d333e352a589abbdfd78ce1556819d406b7f1c4f/imgdiff-1.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81d0744f7834bcfe2d2ac66995269376", "sha256": "c8f947c84f8575009911b005ccd7a0e7edd6e53e8b07a623e4bac23df1419c9e" }, "downloads": -1, "filename": "imgdiff-1.7.1.tar.gz", "has_sig": false, "md5_digest": "81d0744f7834bcfe2d2ac66995269376", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1350841, "upload_time": "2019-04-23T10:55:36", "url": "https://files.pythonhosted.org/packages/ff/f5/4789c19481b4d215bb351025827f37fb9c062fb11053c3d28406e9d273fe/imgdiff-1.7.1.tar.gz" } ] }