altgraph is a fork of graphlib: a graph (network) package for constructing
graphs, BFS and DFS traversals, topological sort, shortest paths, etc. with
graphviz output.
* Built the Windows binaries using -DTOO_FAR=32767; neglected to do this
in versions 1.7.42 through 1.7.70, which caused the Windows binaries
to produce different (usually a few bytes larger) results than Linux.
with very helpful upstream.
Changes:
Version 1.6.9beta01 [December 26, 2013]
Bookkeeping: Moved functions around (no changes). Moved transform
function definitions before the place where they are called so that
they can be masde static. Move the intrapixel functions and the
grayscale palette builder out of the png?tran.c files. The latter
isn't a transform function and is no longer used internally, and the
former MNG specific functions are better placed in pngread/pngwrite.c
Made transform implementation functions static. This makes the internal
functions called by png_do_{read|write}_transformations static. On an
x86-64 DLL build (Gentoo Linux) this reduces the size of the text
segment of the DLL by 1208 bytes, about 0.6%. It also simplifies
maintenance by removing the declarations from pngpriv.h and allowing
easier changes to the internal interfaces.
Rebuilt configure scripts with automake-1.14.1 and autoconf-2.69
in the tar distributions.
Version 1.6.9beta02 [January 1, 2014]
Added checks for libpng 1.5 to pngvalid.c. This supports the use of
this version of pngvalid in libpng 1.5
Merged with pngvalid.c from libpng-1.7 changes to create a single
pngvalid.c
Removed #error macro from contrib/tools/pngfix.c (Thomas Klausner).
Merged pngrio.c, pngtrans.c, pngwio.c, and pngerror.c with libpng-1.7.0
Merged libpng-1.7.0 changes to make no-interlace configurations work
with test programs.
Revised pngvalid.c to support libpng 1.5, which does not support the
PNG_MAXIMUM_INFLATE_WINDOW option, so #define it out when appropriate in
pngvalid.c
Allow unversioned links created on install to be disabled in configure.
In configure builds 'make install' changes/adds links like png.h
and libpng.a to point to the newly installed, versioned, files (e.g.
libpng17/png.h and libpng17.a). Three new configure options and some
rearrangement of Makefile.am allow creation of these links to be disabled.
Version 1.6.9beta03 [January 10, 2014]
Removed potentially misleading warning from png_check_IHDR().
Version 1.6.9beta04 [January 20, 2014]
Updated scripts/makefile.* to use CPPFLAGS (Cosmin).
Added clang attribute support (Cosmin).
Version 1.6.9rc01 [January 28, 2014]
No changes.
Version 1.6.9rc02 [January 30, 2014]
Quiet an uninitialized memory warning from VC2013 in png_get_png().
Version 1.6.9 [February 6, 2014]
changes:
* Add HDF5 file data import
* Allow expressions to be edited for linked 2D datasets
* Add support for 2D datasets with irregular gridpoints
* Add 2D data CSV import
* Allow safe renaming of linked datasets
* Support importing text from FITS files
+bugfixes
Graphite is a project within SIL's scripts and software dev
groups to provide cross-platform rendering for complex writing
systems.
Graphite2, a new version of the Graphite engine, is available
at: http://projects.palaso.org/projects/graphitedev with its
own bug tracker.
Changes:
Use lcms2 instead of lcms.
Can now use "-M" with a DNG file that embeds a bad color matrix.
Improved support for Nokia cameraphones.
Support the Alcatel 5235D, Powershot G16 and S120, Pentax K-3, etc.
Added tone curve for Canon RMF files.
Copied color matrices from DNG Converter 8.3.
Support blacklevel patterns up to 64x64.
Support the Kodak 12-megapixel camera(s).
Version 9a 19-Jan-2014
-----------------------
Add support for wide gamut color spaces (JFIF version 2).
Improve clarity and accuracy in color conversion modules.
Note: Requires rebuild of test images.
Extend the bit depth support to all values from 8 to 12
(BITS_IN_JSAMPLE configuration option in jmorecfg.h).
jpegtran now supports N bits sample data precision with all N from 8 to 12
in a single instance. Thank to Roland Fassauer for inspiration.
Try to resolve issues with new boolean type definition.
Thank also to v4hn for suggestion.
Enable option to use default Huffman tables for lossless compression
(for hardware solution), and in this case improve lossless RGB compression
with reversible color transform. Thank to Benny Alexandar for hint.
Extend the entropy decoding structure, so that extraneous bytes between
compressed scan data and following marker can be reported correctly.
Thank to Nigel Tao for hint.
Add jpegtran -wipe option and extension for -crop.
Thank to Andrew Senior, David Clunie, and Josef Schmid for suggestion.
Overview of changes in Clutter 1.110 [2012-05-03]
=================================================
* Initial alpha release of the new introspection-based Clutter Perl bindings
(with fixes configure requirements from DEPENDS to BUILD_DEPENDS)
Overview of changes in Cairo 1.104
==================================
* Avoid misusing the macro PL_na, thus preventing potential issues when Cairo
is used in conjunction with certain XS modules, among them XML::Parser and
String::Approx.
Clutter 1.16.4 2014-01-24
===============================================================================
• List of changes since Clutter 1.16.2
- Performance improvements
Avoid using hardware picking as much as possible; do not queue redraws
when not needed, and rely on clipped redraws more.
- Accessibility fixes
• List of bugs fixed since Clutter 1.16.2
#710227 - ClutterGestureAction memory corruption
#719747 - ClutterStage: Don't add empty actors to the stage clip
#712563 - Fixes for cogl journal usage when picking
#722220 - Incorrect string reported in accessible text-changed events
when text is removed
#722188 - atk_text_get_n_selections() should return 0 when no text is
selected
#719901 - ClutterStageCogl: Ignore a clip the size of the stage
#719563 - input-device: Guard against double free
#719367 - Bind constraints: Don't force redraws on source relayout
#719368 - Don't queue redraws when reallocating actor that haven't moved
Many thanks to:
Owen W. Taylor, Alejandro Piñeiro, Jasper St. Pierre, Florian Müllner,
Lionel Landwerlin, Sphinx Jiang, Wylmer Wang.
Cogl 1.16.2 2014-01-20
• List of changes since Cogl 1.16.0
» YV12/I420 support in cogl-gst is fixed.
» cogl_framebuffer_push_path_clip is fixed.
» MSVC build updates
• Gnome Bugzilla bugs closed since 1.16.0:
#706808 - "Unable to locate required kms libraries" message is really
uninformative
#710135 - Fix build on big endian
#710926 - Build fails without declaration of wl_resource
#719582 - cogl-framebuffer: Don't mark the clear clip dirty from the
journal
#721450 - Re-enable swap_region for mesa 10.1+ llvmpipe / swrast
Many thanks to:
Robert Bragg
Adel Gadllah
Lionel Landwerlin
Chun-wei Fan
Emilio Pozuelo Monfort
Jasper St. Pierre
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, win32, and image buffers. Experimental backends include OpenGL
(through glitz), Quartz, XCB, PostScript and PDF file output.
This package contains the Python bindings for Cairo.
Changelog (Pillow)
==================
2.3.0 (2014-01-01)
------------------
- Stop leaking filename parameter passed to getfont
[jpharvey]
- Report availability of LIBTIFF during setup and selftest
[cgohlke]
- Fix msvc build error C1189: "No Target Architecture"
[cgohlke]
- Fix memory leak in font_getsize
[wiredfool]
- Correctly prioritize include and library paths
[ohanar]
- Image.point fixes for numpy.array and docs
[wiredfool]
- Save the transparency header by default for PNGs
[wiredfool]
- Support for PNG tRNS header when converting from RGB->RGBA
[wiredfool]
- PyQT5 Support
[wiredfool]
- Updates for saving color tiffs w/compression using libtiff
[wiredfool]
- 2gigapix image fixes and redux
[wiredfool]
- Save arbitrary tags in Tiff image files
[wiredfool]
- Quote filenames and title before using on command line
[tmccombs]
- Fixed Viewer.show to return properly
[tmccombs]
- Documentation fixes
[wiredfool]
- Fixed memory leak saving images as webp when webpmux is available
[cezarsa]
- Fix compiling with FreeType 2.5.1
[stromnov]
- Adds directories for NetBSD.
[deepy]
- Support RGBA TIFF with missing ExtraSamples tag
[cgohlke]
- Lossless WEBP Support
[wiredfool]
- Take compression as an option in the save call for tiffs
[wiredfool]
- Add support for saving lossless WebP. Just pass 'lossless=True' to save()
[liftoff]
- LCMS support upgraded from version 1 to version 2, fixes#343
[wiredfool]
- Added more raw decoder 16 bit pixel formats
[svanheulen]
- Document remaining Image* modules listed in PIL handbook
[irksep]
- Document ImageEnhance, ImageFile, ImageFilter, ImageFont, ImageGrab, ImageMath, and ImageOps
[irksep]
- Port and update docs for Image, ImageChops, ImageColor, and ImageDraw
[irksep]
- Move or copy content from README.rst to docs/
[irksep]
- Respect CFLAGS/LDFLAGS when searching for headers/libs
[iElectric]
- Port PIL Handbook tutorial and appendices
[irksep]
- Alpha Premultiplication support for transform and resize
[wiredfool]
- Fixes to make Pypy 2.1.0 work on Ubuntu 12.04/64
[wiredfool]
2.2.2 (2013-12-11)
------------------
- Fix#427: compiling with FreeType 2.5.1
[stromnov]
2013-05-18 Added support for arbitrary rasterization resolutions to the
SVG backend. Previously the resolution was hard coded to 72
dpi. Now the backend class takes a image_dpi argument for
its constructor, adjusts the image bounding box accordingly
and forwards a magnification factor to the image renderer.
The code and results now resemble those of the PDF backend.
- MW
2013-05-08 Changed behavior of hist when given stacked=True and normed=True.
Histograms are now stacked first, then the sum is normalized.
Previously, each histogram was normalized, then they were stacked.
2013-04-25 Changed all instances of:
from matplotlib import MatplotlibDeprecationWarning as mplDeprecation
to:
from cbook import mplDeprecation
and removed the import into the matplotlib namespace in __init__.py
Thomas Caswell
2013-04-15 Added 'axes.xmargin' and 'axes.ymargin' to rpParams to set default
margins on auto-scaleing. - TAC
2013-04-16 Added patheffect support for Line2D objects. -JJL
FITS (Flexible Image Transport System) is a data format most used in astronomy.
PyFITS is a Python module for reading, writing, and manipulating FITS files.
The module uses Python's object-oriented features to provide quick, easy, and
efficient access to FITS files. The use of Python's array syntax enables
immediate access to any FITS extension, header cards, or data items.
Changes to 2.4.0 (in py-pyfits):
Changelog
===========
3.2 (2013-11-26)
----------------
Highlights
^^^^^^^^^^
- Rewrote CFITSIO-based backend for handling tile compression of FITS files.
It now uses a standard CFITSIO instead of heavily modified pieces of CFITSIO
as before. PyFITS ships with its own copy of CFITSIO v3.35 which supports
the latest version of the Tiled Image Convention (v2.3), but system
packagers may choose instead to strip this out in favor of a
system-installed version of CFITSIO. Earlier versions may work, but nothing
earlier than 3.28 has been tested yet. (#169)
- Added support for reading and writing tables using the Q format for columns.
The Q format is identical to the P format (variable-length arrays) except
that it uses 64-bit integers for the data descriptors, allowing more than
4 GB of variable-length array data in a single table. (#160)
- Added initial support for table columns containing pseudo-unsigned integers.
This is currently enabled by using the ``uint=True`` option when opening
files; any table columns with the correct BZERO value will be interpreted
and returned as arrays of unsigned integers.
- Some refactoring of the table and ``FITS_rec`` modules in order to better
separate the details of the FITS binary and ASCII table data structures from
the HDU data structures that encapsulate them. Most of these changes should
not be apparent to users (but see API Changes below).
API Changes
^^^^^^^^^^^
- Assigning to values in ``ColDefs.names``, ``ColDefs.formats``,
``ColDefs.nulls`` and other attributes of ``ColDefs`` instances that return
lists of column properties is no longer supported. Assigning to those lists
will no longer update the corresponding columns. Instead, please just
modify the ``Column`` instances directly (``Column.name``, ``Column.null``,
etc.)
- The ``pyfits.new_table`` function is marked "pending deprecation". This
does not mean it will be removed outright or that its functionality has
changed. It will likely be replaced in the future for a function with
similar, if not subtly different functionality. A better, if not slightly
more verbose approach is to use ``pyfits.FITS_rec.from_columns`` to create
a new ``FITS_rec`` table--this has the same interface as
``pyfits.new_table``. The difference is that it returns a plan ``FITS_rec``
array, and not an HDU instance. This ``FITS_rec`` object can then be used
as the data argument in the constructors for ``BinTableHDU`` (for binary
tables) or ``TableHDU`` (for ASCII tables). This is analogous to creating
an ``ImageHDU`` by passing in an image array.
``pyfits.FITS_rec.from_columns`` is just a simpler way of creating a
FITS-compatible recarray from a FITS column specification.
- The ``updateHeader``, ``updateHeaderData``, and ``updateCompressedData``
methods of the ``CompDataHDU`` class are pending deprecation and moved to
internal methods. The operation of these methods depended too much on
internal state to be used safely by users; instead they are invoked
automatically in the appropriate places when reading/writing compressed image
HDUs.
- The ``CompDataHDU.compData`` attribute is pending deprecation in favor of
the clearer and more PEP-8 compatible ``CompDataHDU.compressed_data``.
- The constructor for ``CompDataHDU`` has been changed to accept new keyword
arguments. The new keyword arguments are essentially the same, but are in
underscore_separated format rather than camelCase format. The old arguments
are still pending deprecation.
- The internal attributes of HDU classes ``_hdrLoc``, ``_datLoc``, and
``_datSpan`` have been replaced with ``_header_offset``, ``_data_offset``,
and ``_data_size`` respectively. The old attribute names are still pending
deprecation. This should only be of interest to advanced users who have
created their own HDU subclasses.
- The following previously deprecated functions and methods have been removed
entirely: ``createCard``, ``createCardFromString``, ``upperKey``,
``ColDefs.data``, ``setExtensionNameCaseSensitive``, ``_File.getfile``,
``_TableBaseHDU.get_coldefs``, ``Header.has_key``, ``Header.ascardlist``.
If you run your code with a previous version of PyFITS (>= 3.0, < 3.2) with
the ``python -Wd`` argument, warnings for all deprecated interfaces still in
use will be displayed.
- Interfaces that were pending deprecation are now fully deprecated. These
include: ``create_card``, ``create_card_from_string``, ``upper_key``,
``Header.get_history``, and ``Header.get_comment``.
- The ``.name`` attribute on HDUs is now directly tied to the HDU's header, so
that if ``.header['EXTNAME']`` changes so does ``.name`` and vice-versa.
- The ``pyfits.file.PYTHON_MODES`` constant dict was renamed to
``pyfits.file.PYFITS_MODES`` which better reflects its purpose. This is
rarely used by client code, however. Support for the old name will be
removed by PyFITS 3.4.
Other Changes and Additions
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- The new compression code also adds support for the ZQUANTIZ and ZDITHER0
keywords added in more recent versions of this FITS Tile Compression spec.
This includes support for lossless compression with GZIP. (#198) By default
no dithering is used, but the ``SUBTRACTIVE_DITHER_1`` and
``SUBTRACTIVE_DITHER_2`` methods can be enabled by passing the correct
constants to the ``quantize_method`` argument to the ``CompImageHDU``
constuctor. A seed can be manually specified, or automatically generated
using either the system clock or checksum-based methods via the
``dither_seed`` argument. See the documentation for ``CompImageHDU`` for
more details. (#198) (spacetelescope/PYFITS#32)
- Images compressed with the Tile Compression standard can now be larger than
4 GB through support of the Q format. (#159)
- All HDUs now have a ``.ver`` ``.level`` attribute that returns the value of
the EXTVAL and EXTLEVEL keywords from that HDU's header, if the exist. This
was added for consistency with the ``.name`` attribute which returns the
EXTNAME value from the header.
- Then ``Column`` and ``ColDefs`` classes have new ``.dtype`` attributes
which give the Numpy dtype for the column data in the first case, and the
full Numpy compound dtype for each table row in the latter case.
- There was an issue where new tables created defaulted the values in all
string columns to '0.0'. Now string columns are filled with empty strings
by default--this seems a less surprising default, but it may cause
differences with tables created with older versions of PyFITS.
- Improved round-tripping and preservation of manually assigned column
attributes (``TNULLn``, ``TSCALn``, etc.) in table HDU headers.
(astropy/astropy#996)
Bug Fixes
^^^^^^^^^
- Binary tables containing compressed images may, optionally, contain other
columns unrelated to the tile compression convention. Although this is an
uncommon use case, it is permitted by the standard. (#159)
- Reworked some of the file I/O routines to allow simpler, more consistent
mapping between OS-level file modes ('rb', 'wb', 'ab', etc.) and the more
"PyFITS-specific" modes used by PyFITS like "readonly" and "update".
That is, if reading a FITS file from an open file object, it doesn't matter
as much what "mode" it was opened in so long as it has the right
capabilities (read/write/etc.) Also works around bugs in the Python io
module in 2.6+ with regard to file modes. (spacetelescope/PyFITS#33)
- Fixed an obscure issue that can occur on systems that don't have flush to
memory-mapped files implemented (namely GNU Hurd). (astropy/astropy#968)
3.1.3 (2013-11-26)
------------------
- Disallowed assigning NaN and Inf floating point values as header values,
since the FITS standard does not define a way to represent them in. Because
this is undefined, the previous behavior did not make sense and produced
invalid FITS files. (spacetelescope/PyFITS#11)
- Added a workaround for a bug in 64-bit OSX that could cause truncation when
writing files greater than 2^32 bytes in size. (spacetelescope/PyFITS#28)
- Fixed a long-standing issue where writing binary tables did not correctly
write the TFORMn keywords for variable-length array columns (they ommitted
the max array length parameter of the format). This was thought fixed in
v3.1.2, but it was only fixed there for compressed image HDUs and not for
binary tables in general.
- Fixed an obscure issue that can occur on systems that don't have flush to
memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)
3.0.12 (2013-11-26)
-------------------
- Disallowed assigning NaN and Inf floating point values as header values,
since the FITS standard does not define a way to represent them in. Because
this is undefined, the previous behavior did not make sense and produced
invalid FITS files. (Backported from 3.1.3)
- Added a workaround for a bug in 64-bit OSX that could cause truncation when
writing files greater than 2^32 bytes in size. (Backported from 3.1.3)
- Fixed a long-standing issue where writing binary tables did not correctly
write the TFORMn keywords for variable-length array columns (they ommitted
the max array length parameter of the format). This was thought fixed in
v3.1.2, but it was only fixed there for compressed image HDUs and not for
binary tables in general. (Backported from 3.1.3)
- Fixed an obscure issue that can occur on systems that don't have flush to
memory-mapped files implemented (namely GNU Hurd). (Backported from 3.2)
3.1.2 (2013-04-22)
------------------
- When an error occurs opening a file in fitsdiff the exception message will
now at least mention which file had the error. (#168)
- Fixed support for opening gzipped FITS files by filename in a writeable mode
(PyFITS has supported writing to gzip files for some time now, but only
enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
some legacy code preventing full gzip support. (#195)
- Added a more helpful error message in the case of malformatted FITS files
that contain non-float NULL values in an ASCII table but are missing the
required TNULLn keywords in the header. (#197)
- Fixed an (apparently long-standing) issue where writing compressed images
did not correctly write the TFORMn keywords for variable-length array
columns (they ommitted the max array length parameter of the format). (#199)
- Slightly refactored how tables containing variable-length array columns are
handled to add two improvements: Fixes an issue where accessing the data
after a call to the `pyfits.getdata` convenience function caused an
exception, and allows the VLA data to be read from an existing mmap of the
FITS file. (#200)
- Fixed a bug that could occur when opening a table containing
multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
out to a new file. (#201)
- Added use of the console_scripts entry point to install the fitsdiff and
fitscheck scripts, which if nothing else provides better Windows support.
The generated scripts now override the ones explicitly defined in the
scripts/ directory (which were just trivial stubs to begin with). (#202)
- Fixed a bug on Python 3 where attempting to open a non-existent file on
Python 3 caused a seemingly unrelated traceback. (#203)
- Fixed a bug in fitsdiff that reported two header keywords containing NaN
as value as different. (#204)
- Fixed an issue in the tests that caused some tests to fail if pyfits is
installed with read-only permissions. (#208)
- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
containing boolean fields converted all the values to ``False``. (#215)
- Fixed an issue where passing an array of integers into the constructor of
``Column()`` when the column type is floats of the same byte width caused the
column array to become garbled. (#218)
- Fixed inconsistent behavior in creating CONTINUE cards from byte strings
versus unicode strings in Python 2--CONTINUE cards can now be created
properly from unicode strings (so long as they are convertable to ASCII).
(spacetelescope/PyFITS#1)
- Fixed a couple cases where creating a new table using TDIMn in some of the
columns could caused a crash. (spacetelescope/PyFITS#3)
- Fixed a bug in parsing HIERARCH keywords that do not have a space after
the first equals sign (before the value). (spacetelescope/PyFITS#5)
- Prevented extra leading whitespace on HIERARCH keywords from being treated
as part of the keyword. (spacetelescope/PyFITS#6)
- Fixed a bug where HIERARCH keywords containing lower-case letters was
mistakenly marked as invalid during header validation.
(spacetelescope/PyFITS#7)
- Fixed an issue that was ancillary to (spacetelescope/PyFITS#7) where the
``Header.index()`` method did not work correctly with HIERARCH keywords
containing lower-case letters.
3.0.11 (2013-04-17)
-------------------
- Fixed support for opening gzipped FITS files by filename in a writeable mode
(PyFITS has supported writing to gzip files for some time now, but only
enabled it when GzipFile objects were passed to ``pyfits.open()`` due to
some legacy code preventing full gzip support. Backported from 3.1.2. (#195)
- Added a more helpful error message in the case of malformatted FITS files
that contain non-float NULL values in an ASCII table but are missing the
required TNULLn keywords in the header. Backported from 3.1.2. (#197)
- Fixed an (apparently long-standing) issue where writing compressed images did
not correctly write the TFORMn keywords for variable-length array columns
(they ommitted the max array length parameter of the format). Backported from
3.1.2. (#199)
- Slightly refactored how tables containing variable-length array columns are
handled to add two improvements: Fixes an issue where accessing the data
after a call to the `pyfits.getdata` convenience function caused an
exception, and allows the VLA data to be read from an existing mmap of the
FITS file. Backported from 3.1.2. (#200)
- Fixed a bug that could occur when opening a table containing
multi-dimensional columns (i.e. via the TDIMn keyword) and then writing it
out to a new file. Backported from 3.1.2. (#201)
- Fixed a bug on Python 3 where attempting to open a non-existent file on
Python 3 caused a seemingly unrelated traceback. Backported from 3.1.2.
(#203)
- Fixed a bug in fitsdiff that reported two header keywords containing NaN
as value as different. Backported from 3.1.2. (#204)
- Fixed an issue in the tests that caused some tests to fail if pyfits is
installed with read-only permissions. Backported from 3.1.2. (#208)
- Fixed a bug where instantiating a ``BinTableHDU`` from a numpy array
containing boolean fields converted all the values to ``False``. Backported
from 3.1.2. (#215)
- Fixed an issue where passing an array of integers into the constructor of
``Column()`` when the column type is floats of the same byte width caused the
column array to become garbled. Backported from 3.1.2. (#218)
- Fixed a couple cases where creating a new table using TDIMn in some of the
columns could caused a crash. Backported from 3.1.2.
(spacetelescope/PyFITS#3)
3.1.1 (2013-01-02)
------------------
This is a bug fix release for the 3.1.x series.
Bug Fixes
^^^^^^^^^
- Improved handling of scaled images and pseudo-unsigned integer images in
compressed image HDUs. They now work more transparently like normal image
HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
as well as ``scale_back`` and ``save_backup``. The ``.scale()`` method
works better too. (#88)
- Permits non-string values for the EXTNAME keyword when reading in a file,
rather than throwing an exception due to the malformatting. Added
verification for the format of the EXTNAME keyword when writing. (#96)
- Added support for EXTNAME and EXTVER in PRIMARY HDUs. That is, if EXTNAME
is specified in the header, it will also be reflected in the ``.name``
attribute and in ``pyfits.info()``. These keywords used to be verboten in
PRIMARY HDUs, but the latest version of the FITS standard allows them.
(#151)
- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
arrays) so long as the tile size is effectively 2-dimensional. In fact,
PyFITS will automatically use compatible tile sizes even if they're not
explicitly specified. (#171)
- Added support for the optional ``endcard`` parameter in the
``Header.fromtextfile()`` and ``Header.totextfile()`` methods. Although
``endcard=False`` was a reasonable default assumption, there are still text
dumps of FITS headers that include the END card, so this should have been
more flexible. (#176)
- Fixed a crash when running fitsdiff on two empty (that is, zero row) tables.
(#178)
- Fixed an issue where opening files containing random groups HDUs in update
mode could cause an unnecessary rewrite of the file even if none of the
data is modified. (#179)
- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
is used with Numpy 1.7 in some cases. (#180)
- Fixed a crash when generating diff reports from diffs using the
``ignore_comments`` options. (#181)
- Fixed some bugs with WCS Paper IV record-valued keyword cards:
- Cards that looked kind of like RVKCs but were not intended to be were
over-permissively treated as such--commentary keywords like COMMENT and
HISTORY were particularly affected. (#183)
- Looking up a card in a header by its standard FITS keyword only should
always return the raw value of that card. That way cards containing
values that happen to valid RVKCs but were not intended to be will still
be treated like normal cards. (#184)
- Looking up a RVKC in a header with only part of the field-specifier (for
example "DP1.AXIS" instead of "DP1.AXIS.1") was implicitly treated as a
wildcard lookup. (#184)
- Fixed a crash when diffing two FITS files where at least one contains a
compressed image HDU which was not recognized as an image instead of a
table. (#187)
- Fixed bugs in the backwards compatibility layer for the ``CardList.index``
and ``CardList.count`` methods. (#190)
- Improved ``__repr__`` and text file representation of cards with long values
that are split into CONTINUE cards. (#193)
- Fixed a crash when trying to assign a long (> 72 character) value to blank
('') keywords. This also changed how blank keywords are represented--there
are still exactly 8 spaces before any commentary content can begin; this
*may* affect the exact display of header cards that assumed there could be
fewer spaces in a blank keyword card before the content begins. However, the
current approach is more in line with the requirements of the FITS standard.
(#194)
3.0.10 (2013-01-02)
-------------------
- Improved handling of scaled images and pseudo-unsigned integer images in
compressed image HDUs. They now work more transparently like normal image
HDUs with support for the ``do_not_scale_image_data`` and ``uint`` options,
as well as ``scale_back`` and ``save_backup``. The ``.scale()`` method
works better too. Backported from 3.1.1. (#88)
- Permits non-string values for the EXTNAME keyword when reading in a file,
rather than throwing an exception due to the malformatting. Added
verification for the format of the EXTNAME keyword when writing. Backported
from 3.1.1. (#96)
- Added support for EXTNAME and EXTVER in PRIMARY HDUs. That is, if EXTNAME
is specified in the header, it will also be reflected in the ``.name``
attribute and in ``pyfits.info()``. These keywords used to be verbotten in
PRIMARY HDUs, but the latest version of the FITS standard allows them.
Backported from 3.1.1. (#151)
- HCOMPRESS can again be used to compress data cubes (and higher-dimensional
arrays) so long as the tile size is effectively 2-dimensional. In fact,
PyFITS will not automatically use compatible tile sizes even if they're not
explicitly specified. Backported from 3.1.1. (#171)
- Fixed a bug when writing out files containing zero-width table columns,
where the TFIELDS keyword would be updated incorrectly, leaving the table
largely unreadable. Backported from 3.1.0. (#174)
- Fixed an issue where opening files containing random groups HDUs in update
mode could cause an unnecessary rewrite of the file even if none of the
data is modified. Backported from 3.1.1. (#179)
- Fixed a bug that could caused a deadlock in the filesystem on OSX if PyFITS
is used with Numpy 1.7 in some cases. Backported from 3.1.1. (#180)
3.1 (2012-08-08)
----------------
Highlights
^^^^^^^^^^
- The ``Header`` object has been significantly reworked, and ``CardList``
objects are now deprecated (their functionality folded into the ``Header``
class). See API Changes below for more details.
- Memory maps are now used by default to access HDU data. See API Changes
below for more details.
- Now includes a new version of the ``fitsdiff`` program for comparing two
FITS files, and a new FITS comparison API used by ``fitsdiff``. See New
Features below.
API Changes
^^^^^^^^^^^
- The ``Header`` class has been rewritten, and the ``CardList`` class is
deprecated. Most of the basic details of working with FITS headers are
unchanged, and will not be noticed by most users. But there are differences
in some areas that will be of interest to advanced users, and to application
developers. For full details of the changes, see the "Header Interface
Transition Guide" section in the PyFITS documentation. See ticket #64 on
the PyFITS Trac for futher details and background. Some highlights are
listed below:
* The Header class now fully implements the Python dict interface, and can
be used interchangably with a dict, where the keys are header keywords.
* New keywords can be added to the header using normal keyword assignment
(previously it was necessary to use ``Header.update`` to add new
keywords). For example::
>>> header['NAXIS'] = 2
will update the existing 'FOO' keyword if it already exists, or add a new
one if it doesn't exist, just like a dict.
* It is possible to assign both a value and a comment at the same time using
a tuple::
>>> header['NAXIS'] = (2, 'Number of axes')
* To add/update a new card and ensure it's added in a specific location, use
``Header.set()``::
>>> header.set('NAXIS', 2, 'Number of axes', after='BITPIX')
This works the same as the old ``Header.update()``. ``Header.update()``
still works in the old way too, but is deprecated.
* Although ``Card`` objects still exist, it generally is not necessary to
work with them directly. ``Header.ascardlist()``/``Header.ascard`` are
deprecated and should not be used. To directly access the ``Card``
objects in a header, use ``Header.cards``.
* To access card comments, it is still possible to either go through the
card itself, or through ``Header.comments``. For example::
>>> header.cards['NAXIS'].comment
Number of axes
>>> header.comments['NAXIS']
Number of axes
* ``Card`` objects can now be used interchangeably with
``(keyword, value, comment)`` 3-tuples. They still have ``.value`` and
``.comment`` attributes as well. The ``.key`` attribute has been renamed
to ``.keyword`` for consistency, though ``.key`` is still supported (but
deprecated).
- Memory mapping is now used by default to access HDU data. That is,
``pyfits.open()`` uses ``memmap=True`` as the default. This provides better
performance in the majority of use cases--there are only some I/O intensive
applications where it might not be desirable. Enabling mmap by default also
enabled finding and fixing a large number of bugs in PyFITS' handling of
memory-mapped data (most of these bug fixes were backported to PyFITS
3.0.5). (#85)
* A new ``pyfits.USE_MEMMAP`` global variable was added. Set
``pyfits.USE_MEMMAP = False`` to change the default memmap setting for
opening files. This is especially useful for controlling the behavior in
applications where pyfits is deeply embedded.
* Likewise, a new ``PYFITS_USE_MEMMAP`` environment variable is supported.
Set ``PYFITS_USE_MEMMAP = 0`` in your environment to change the default
behavior.
- The ``size()`` method on HDU objects is now a ``.size`` property--this
returns the size in bytes of the data portion of the HDU, and in most cases
is equivalent to ``hdu.data.nbytes`` (#83)
- ``BinTableHDU.tdump`` and ``BinTableHDU.tcreate`` are deprecated--use
``BinTableHDU.dump`` and ``BinTableHDU.load`` instead. The new methods
output the table data in a slightly different format from previous versions,
which places quotes around each value. This format is compatible with data
dumps from previous versions of PyFITS, but not vice-versa due to a parsing
bug in older versions.
- Likewise the ``pyfits.tdump`` and ``pyfits.tcreate`` convenience function
versions of these methods have been renamed ``pyfits.tabledump`` and
``pyfits.tableload``. The old deprecated, but currently retained for
backwards compatibility. (r1125)
- A new global variable ``pyfits.EXTENSION_NAME_CASE_SENSITIVE`` was added.
This serves as a replacement for ``pyfits.setExtensionNameCaseSensitive``
which is not deprecated and may be removed in a future version. To enable
case-sensitivity of extension names (i.e. treat 'sci' as distict from 'SCI')
set ``pyfits.EXTENSION_NAME_CASE_SENSITIVE = True``. The default is
``False``. (r1139)
- A new global configuration variable ``pyfits.STRIP_HEADER_WHITESPACE`` was
added. By default, if a string value in a header contains trailing
whitespace, that whitespace is automatically removed when the value is read.
Now if you set ``pyfits.STRIP_HEADER_WHITESPACE = False`` all whitespace is
preserved. (#146)
- The old ``classExtensions`` extension mechanism (which was deprecated in
PyFITS 3.0) is removed outright. To our knowledge it was no longer used
anywhere. (r1309)
- Warning messages from PyFITS issued through the Python warnings API are now
output to stderr instead of stdout, as is the default. PyFITS no longer
modifies the default behavior of the warnings module with respect to which
stream it outputs to. (r1319)
- The ``checksum`` argument to ``pyfits.open()`` now accepts a value of
'remove', which causes any existing CHECKSUM/DATASUM keywords to be ignored,
and removed when the file is saved.
New Features
^^^^^^^^^^^^
- Added support for the proposed "FITS" extension HDU type. See
http://listmgr.cv.nrao.edu/pipermail/fitsbits/2002-April/001094.html. FITS
HDUs contain an entire FITS file embedded in their data section. `FitsHDU`
objects work like other HDU types in PyFITS. Their ``.data`` attribute
returns the raw data array. However, they have a special ``.hdulist``
attribute which processes the data as a FITS file and returns it as an
in-memory HDUList object. FitsHDU objects also support a
``FitsHDU.fromhdulist()`` classmethod which returns a new `FitsHDU` object
that embeds the supplied HDUList. (#80)
- Added a new ``.is_image`` attribute on HDU objects, which is True if the HDU
data is an 'image' as opposed to a table or something else. Here the
meaning of 'image' is fairly loose, and mostly just means a Primary or Image
extension HDU, or possibly a compressed image HDU (#71)
- Added an ``HDUList.fromstring`` classmethod which can parse a FITS file
already in memory and instantiate and ``HDUList`` object from it. This
could be useful for integrating PyFITS with other libraries that work on
FITS file, such as CFITSIO. It may also be useful in streaming
applications. The name is a slight misnomer, in that it actually accepts
any Python object that implements the buffer interface, which includes
``bytes``, ``bytearray``, ``memoryview``, ``numpy.ndarray``, etc. (#90)
- Added a new ``pyfits.diff`` module which contains facilities for comparing
FITS files. One can use the ``pyfits.diff.FITSDiff`` class to compare two
FITS files in their entirety. There is also a ``pyfits.diff.HeaderDiff``
class for just comparing two FITS headers, and other similar interfaces.
See the PyFITS Documentation for more details on this interface. The
``pyfits.diff`` module powers the new ``fitsdiff`` program installed with
PyFITS. After installing PyFITS, run ``fitsdiff --help`` for usage details.
- ``pyfits.open()`` now accepts a ``scale_back`` argument. If set to
``True``, this automatically scales the data using the original BZERO and
BSCALE parameters the file had when it was first opened, if any, as well as
the original BITPIX. For example, if the original BITPIX were 16, this
would be equivalent to calling ``hdu.scale('int16', 'old')`` just before
calling ``flush()`` or ``close()`` on the file. This option applies to all
HDUs in the file. (#120)
- ``pyfits.open()`` now accepts a ``save_backup`` argument. If set to
``True``, this automatically saves a backup of the original file before
flushing any changes to it (this of course only applies to update and append
mode). This may be especially useful when working with scaled image data.
(#121)
Changes in Behavior
^^^^^^^^^^^^^^^^^^^
- Warnings from PyFITS are not output to stderr by default, instead of stdout
as it has been for some time. This is contrary to most users' expectations
and makes it more difficult for them to separate output from PyFITS from the
desired output for their scripts. (r1319)
Bug Fixes
^^^^^^^^^
- Fixed ``pyfits.tcreate()`` (now ``pyfits.tableload()``) to be more robust
when encountering blank lines in a column definition file (#14)
- Fixed a fairly rare crash that could occur in the handling of CONTINUE cards
when using Numpy 1.4 or lower (though 1.4 is the oldest version supported by
PyFITS). (r1330)
- Fixed ``_BaseHDU.fromstring`` to actually correctly instantiate an HDU
object from a string/buffer containing the header and data of that HDU.
This allowed for the implementation of ``HDUList.fromstring`` described
above. (#90)
- Fixed a rare corner case where, in some use cases, (mildly, recoverably)
malformatted float values in headers were not properly returned as floats.
(#137)
- Fixed a corollary to the previous bug where float values with a leading zero
before the decimal point had the leading zero unnecessarily removed when
saving changes to the file (eg. "0.001" would be written back as ".001" even
if no changes were otherwise made to the file). (#137)
- When opening a file containing CHECKSUM and/or DATASUM keywords in update
mode, the CHECKSUM/DATASUM are updated and preserved even if the file was
opened with checksum=False. This change in behavior prevents checksums from
being unintentionally removed. (#148)
- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
was not restoring the image to its original BSCALE and BZERO values. (#162)
- Fixed a bug when writing out files containing zero-width table columns,
where the TFIELDS keyword would be updated incorrectly, leaving the table
largely unreadable. This fix will be backported to the 3.0.x series in
version 3.0.10. (#174)
3.0.9 (2012-08-06)
------------------
This is a bug fix release for the 3.0.x series.
Bug Fixes
^^^^^^^^^
- Fixed ``Header.values()``/``Header.itervalues()`` and ``Header.items()``/
``Header.iteritems()`` to correctly return the different values for
duplicate keywords (particularly commentary keywords like HISTORY and
COMMENT). This makes the old Header implementation slightly more compatible
with the new implementation in PyFITS 3.1. (#127)
.. note::
This fix did not change the existing behavior from earlier PyFITS
versions where ``Header.keys()`` returns all keywords in the header with
duplicates removed. PyFITS 3.1 changes that behavior, so that
``Header.keys()`` includes duplicates.
- Fixed a bug where ``ImageHDU.scale(option='old')`` wasn't working at all--it
was not restoring the image to its original BSCALE and BZERO values. (#162)
- Fixed a bug where opening a file containing compressed image HDUs in
'update' mode and then immediately closing it without making any changes
caused the file to be rewritten unncessarily. (#167)
- Fixed two memory leaks that could occur when writing compressed image data,
or in some cases when opening files containing compressed image HDUs in
'update' mode. (#168)
3.0.8 (2012-06-04)
------------------
Changes in Behavior
^^^^^^^^^^^^^^^^^^^
- Prior to this release, image data sections did not work with scaled
data--that is, images with non-trivial BSCALE and/or BZERO values.
Previously, in order to read such images in sections, it was necessary to
manually apply the BSCALE+BZERO to each section. It's worth noting that
sections *did* support pseudo-unsigned ints (flakily). This change just
extends that support for general BSCALE+BZERO values.
Bug Fixes
^^^^^^^^^
- Fixed a bug that prevented updates to values in boolean table columns from
being saved. This turned out to be a symptom of a deeper problem that could
prevent other table updates from being saved as well. (#139)
- Fixed a corner case in which a keyword comment ending with the string "END"
could, in some circumstances, cause headers (and the rest of the file after
that point) to be misread. (#142)
- Fixed support for scaled image data and psuedo-unsigned ints in image data
sections (``hdu.section``). Previously this was not supported at all. At
some point support was supposedly added, but it was buggy and incomplete.
Now the feature seems to work much better. (#143)
- Fixed the documentation to point out that image data sections *do* support
non-contiguous slices (and have for a long time). The documentation was
never updated to reflect this, and misinformed users that only contiguous
slices were supported, leading to some confusion. (#144)
- Fixed a bug where creating an ``HDUList`` object containing multiple PRIMARY
HDUs caused an infinite recursion when validating the object prior to
writing to a file. (#145)
- Fixed a rare but serious case where saving an update to a file that
previously had a CHECKSUM and/or DATASUM keyword, but removed the checksum
in saving, could cause the file to be slightly corrupted and unreadable.
(#147)
- Fixed problems with reading "non-standard" FITS files with primary headers
containing SIMPLE = F. PyFITS has never made many guarantees as to how such
files are handled. But it should at least be possible to read their
headers, and the data if possible. Saving changes to such a file should not
try to prepend an unwanted valid PRIMARY HDU. (#157)
- Fixed a bug where opening an image with ``disable_image_compression = True``
caused compression to be disabled for all subsequent ``pyfits.open()`` calls.
(r1651)
3.0.7 (2012-04-10)
------------------
Changes in Behavior
^^^^^^^^^^^^^^^^^^^
- Slices of GroupData objects now return new GroupData objects instead of
extended multi-row _Group objects. This is analogous to how PyFITS 3.0 fixed
FITS_rec slicing, and should have been fixed for GroupData at the same time.
The old behavior caused bugs where functions internal to Numpy expected that
slicing an ndarray would return a new ndarray. As this is a rare usecase
with a rare feature most users are unlikely to be affected by this change.
- The previously internal _Group object for representing individual group
records in a GroupData object are renamed Group and are now a public
interface. However, there's almost no good reason to create Group objects
directly, so it shouldn't be considered a "new feature".
- An annoyance from PyFITS 3.0.6 was fixed, where the value of the EXTEND
keyword was always being set to F if there are not actually any extension
HDUs. It was unnecessary to modify this value.
Bug Fixes
^^^^^^^^^
- Fixed GroupData objects to return new GroupData objects when sliced instead
of _Group record objects. See "Changes in behavior" above for more details.
- Fixed slicing of Group objects--previously it was not possible to slice
slice them at all.
- Made it possible to assign `np.bool_` objects as header values. (#123)
- Fixed overly strict handling of the EXTEND keyword; see "Changes in
behavior" above. (#124)
- Fixed many cases where an HDU's header would be marked as "modified" by
PyFITS and rewritten, even when no changes to the header are necessary.
(#125)
- Fixed a bug where the values of the PTYPEn keywords in a random groups HDU
were forced to be all lower-case when saving the file. (#130)
- Removed an unnecessary inline import in `ExtensionHDU.__setattr__` that was
causing some slowdown when opening files containing a large number of
extensions, plus a few other small (but not insignficant) performance
improvements thanks to Julian Taylor. (#133)
- Fixed a regression where header blocks containing invalid end-of-header
padding (i.e. null bytes instead of spaces) couldn't be parsed by PyFITS.
Such headers can be parsed again, but a warning is raised, as such headers
are not valid FITS. (#136)
- Fixed a memory leak where table data in random groups HDUs weren't being
garbage collected. (#138)
3.0.6 (2012-02-29)
------------------
Highlights
^^^^^^^^^^
The main reason for this release is to fix an issue that was introduced in
PyFITS 3.0.5 where merely opening a file containing scaled data (that is, with
non-trivial BSCALE and BZERO keywords) in 'update' mode would cause the data
to be automatically rescaled--possibly converting the data from ints to
floats--as soon as the file is closed, even if the application did not touch
the data. Now PyFITS will only rescale the data in an extension when the data
is actually accessed by the application. So opening a file in 'update' mode
in order to modify the header or append new extensions will not cause any
change to the data in existing extensions.
This release also fixes a few Windows-specific bugs found through more
extensive Windows testing, and other miscellaneous bugs.
Bug Fixes
^^^^^^^^^
- More accurate error messages when opening files containing invalid header
cards. (#109)
- Fixed a possible reference cycle/memory leak that was caught through more
extensive testing on Windows. (#112)
- Fixed 'ostream' mode to open the underlying file in 'wb' mode instead of 'w'
mode. (#112)
- Fixed a Windows-only issue where trying to save updates to a resized FITS
file could result in a crash due to there being open mmaps on that file.
(#112)
- Fixed a crash when trying to create a FITS table (i.e. with new_table())
from a Numpy array containing bool fields. (#113)
- Fixed a bug where manually initializing an ``HDUList`` with a list of of
HDUs wouldn't set the correct EXTEND keyword value on the primary HDU.
(#114)
- Fixed a crash that could occur when trying to deepcopy a Header in Python <
2.7. (#115)
- Fixed an issue where merely opening a scaled image in 'update' mode would
cause the data to be converted to floats when the file is closed. (#119)
3.0.5 (2012-01-30)
------------------
- Fixed a crash that could occur when accessing image sections of files
opened with memmap=True. (r1211)
- Fixed the inconsistency in the behavior of files opened in 'readonly' mode
when memmap=True vs. when memmap=False. In the latter case, although
changes to array data were not saved to disk, it was possible to update the
array data in memory. On the other hand with memmap=True, 'readonly' mode
prevented even in-memory modification to the data. This is what
'copyonwrite' mode was for, but difference in behavior was confusing. Now
'readonly' is equivalent to 'copyonwrite' when using memmap. If the old
behavior of denying changes to the array data is necessary, a new
'denywrite' mode may be used, though it is only applicable to files opened
with memmap. (r1275)
- Fixed an issue where files opened with memmap=True would return image data
as a raw numpy.memmap object, which can cause some unexpected
behaviors--instead memmap object is viewed as a numpy.ndarray. (r1285)
- Fixed an issue in Python 3 where a workaround for a bug in Numpy on Python 3
interacted badly with some other software, namely to vo.table package (and
possibly others). (r1320, r1337, and #110)
- Fixed buggy behavior in the handling of SIGINTs (i.e. Ctrl-C keyboard
interrupts) while flushing changes to a FITS file. PyFITS already prevented
SIGINTs from causing an incomplete flush, but did not clean up the signal
handlers properly afterwards, or reraise the keyboard interrupt once the
flush was complete. (r1321)
- Fixed a crash that could occur in Python 3 when opening files with checksum
checking enabled. (r1336)
- Fixed a small bug that could cause a crash in the `StreamingHDU` interface
when using Numpy below version 1.5.
- Fixed a crash that could occur when creating a new `CompImageHDU` from an
array of big-endian data. (#104)
- Fixed a crash when opening a file with extra zero padding at the end.
Though FITS files should not have such padding, it's not explictly forbidden
by the format either, and PyFITS shouldn't stumble over it. (#106)
- Fixed a major slowdown in opening tables containing large columns of string
values. (#111)
3.0.4 (2011-11-22)
------------------
- Fixed a crash when writing HCOMPRESS compressed images that could happen on
Python 2.5 and 2.6. (r1217)
- Fixed a crash when slicing an table in a file opened in 'readonly' mode with
memmap=True. (r1230)
- Writing changes to a file or writing to a new file verifies the output in
'fix' mode by default instead of 'exception'--that is, PyFITS will
automatically fix common FITS format errors rather than raising an
exception. (r1243)
- Fixed a bug where convenience functions such as getval() and getheader()
crashed when specifying just 'PRIMARY' as the extension to use (r1263).
- Fixed a bug that prevented passing keyword arguments (beyond the standard
data and header arguments) as positional arguments to the constructors of
extension HDU classes.
- Fixed some tests that were failing on Windows--in this case the tests
themselves failed to close some temp files and Windows refused to delete them
while there were still open handles on them. (r1295)
- Fixed an issue with floating point formatting in header values on Python 2.5
for Windows (and possibly other platforms). The exponent was zero-padded to
3 digits; although the FITS standard makes no specification on this, the
formatting is now normalized to always pad the exponent to two digits.
(r1295)
- Fixed a bug where long commentary cards (such as HISTORY and COMMENT) were
broken into multiple CONTINUE cards. However, commentary cards are not
expected to be found in CONTINUE cards. Instead these long cards are broken
into multiple commentary cards. (#97)
- GZIP/ZIP-compressed FITS files can be detected and opened regardless of
their filename extension. (#99)
- Fixed a serious bug where opening scaled images in 'update' mode and then
closing the file without touching the data would cause the file to be
corrupted. (#101)
3.0.3 (2011-10-05)
------------------
- Fixed several small bugs involving corner cases in record-valued keyword
cards (#70)
- In some cases HDU creation failed if the first keyword value in the header
was not a string value (#89)
- Fixed a crash when trying to compute the HDU checksum when the data array
contains an odd number of bytes (#91)
- Disabled an unnecessary warning that was displayed on opening compressed
HDUs with disable_image_compression = True (#92)
- Fixed a typo in code for handling HCOMPRESS compressed images.
3.0.2 (2011-09-23)
------------------
- The ``BinTableHDU.tcreate`` method and by extension the ``pyfits.tcreate``
function don't get tripped up by blank lines anymore (#14)
- The presence, value, and position of the EXTEND keyword in Primary HDUs is
verified when reading/writing a FITS file (#32)
- Improved documentation (in warning messages as well as in the handbook) that
PyFITS uses zero-based indexing (as one would expect for C/Python code, but
contrary to the PyFITS standard which was written with FORTRAN in mind)
(#68)
- Fixed a bug where updating a header card comment could cause the value to be
lost if it had not already been read from the card image string.
- Fixed a related bug where changes made directly to Card object in a header
(i.e. assigning directly to card.value or card.comment) would not propagate
when flushing changes to the file (#69) [Note: This and the bug above it
were originally reported as being fixed in version 3.0.1, but the fix was
never included in the release.]
- Improved file handling, particularly in Python 3 which had a few small file
I/O-related bugs (#76)
- Fixed a bug where updating a FITS file would sometimes cause it to lose its
original file permissions (#79)
- Fixed the handling of TDIMn keywords; 3.0 added support for them, but got
the axis order backards (they were treated as though they were row-major)
(#82)
- Fixed a crash when a FITS file containing scaled data is opened and
immediately written to a new file without explicitly viewing the data first
(#84)
- Fixed a bug where creating a table with columns named either 'names' or
'formats' resulted in an infinite recursion (#86)
3.0.1 (2011-09-12)
------------------
- Fixed a bug where updating a header card comment could cause the value to be
lost if it had not already been read from the card image string.
- Changed ``_TableBaseHDU.data`` so that if the data contain an empty table a
``FITS_rec`` object with zero rows is returned rather than ``None``.
- The ``.key`` attribute of ``RecordValuedKeywordCards`` now returns the full
keyword+field-specifier value, instead of just the plain keyword (#46)
- Fixed a related bug where changes made directly to Card object in a header
(i.e. assigning directly to card.value or card.comment) would not propagate
when flushing changes to the file (#69)
- Fixed a bug where writing a table with zero rows could fail in some cases
(#72)
- Miscellanous small bug fixes that were causing some tests to fail,
particularly on Python 3 (#74, #75)
- Fixed a bug where creating a table column from an array in non-native byte
order would not preserve the byte order, thus interpreting the column array
using the wrong byte order (#77)
3.0.0 (2011-08-23)
--------------------
- Contains major changes, bumping the version to 3.0
- Large amounts of refactoring and reorganization of the code; tried to
preserve public API backwards-compatibility with older versions (private API
has many changes and is not guaranteed to be backwards-compatible). There
are a few small public API changes to be aware of:
* The pyfits.rec module has been removed completely. If your version of
numpy does not have the numpy.core.records module it is too old to be used
with PyFITS.
* The ``Header.ascardlist()`` method is deprecated--use the ``.ascard``
attribute instead.
* ``Card`` instances have a new ``.cardimage`` attribute that should be used
rather than ``.ascardimage()``, which may become deprecated.
* The ``Card.fromstring()`` method is now a classmethod. It returns a new
``Card`` instance rather than modifying an existing instance.
* The ``req_cards()`` method on HDU instances has changed: The ``pos``
argument is not longer a string. It is either an integer value (meaning
the card's position must match that value) or it can be a function that
takes the card's position as it's argument, and returns True if the
position is valid. Likewise, the ``test`` argument no longer takes a
string, but instead a function that validates the card's value and returns
True or False.
* The ``get_coldefs()`` method of table HDUs is deprecated. Use the
``.columns`` attribute instead.
* The ``ColDefs.data`` attribute is deprecated--use ``ColDefs.columns``
instead (though in general you shouldn't mess with it directly--it might
become internal at some point).
* ``FITS_record`` objects take ``start`` and ``end`` as arguments instead of
``startColumn`` and ``endColumn`` (these are rarely created manually, so
it's unlikely that this change will affect anyone).
* ``BinTableHDU.tcreate()`` is now a classmethod, and returns a new
``BinTableHDU`` instance.
* Use ``ExtensionHDU`` and ``NonstandardExtHDU`` for making new extension HDU
classes. They are now public interfaces, wheres previously they were
private and prefixed with underscores.
* Possibly others--please report if you find any changes that cause
difficulties.
- Calls to deprecated functions will display a Deprecation warning. However,
in Python 2.7 and up Deprecation warnings are ignored by default, so run
Python with the `-Wd` option to see if you're using any deprecated
functions. If we get close to actually removing any functions, we might
make the Deprecation warnings display by default.
- Added basic Python 3 support
- Added support for multi-dimensional columns in tables as specified by the
TDIMn keywords (#47)
- Fixed a major memory leak that occurred when creating new tables with the
``new_table()`` function (#49)
be padded with zero-bytes) vs ASCII tables (where strings are padded with
spaces) (#15)
- Fixed a bug in which the case of Random Access Group parameters names was not
preserved when writing (#41)
- Added support for binary table fields with zero width (#42)
- Added support for wider integer types in ASCII tables; although this is non-
standard, some GEIS images require it (#45)
- Fixed a bug that caused the index_of() method of HDULists to crash when the
HDUList object is created from scratch (#48)
- Fixed the behavior of string padding in binary tables (where strings should
be padded with nulls instead of spaces)
- Fixed a rare issue that caused excessive memory usage when computing
checksums using a non-standard block size (see r818)
- Add support for forced uint data in image sections (#53)
- Fixed an issue where variable-length array columns were not extended when
creating a new table with more rows than the original (#54)
- Fixed tuple and list-based indexing of FITS_rec objects (#55)
- Fixed an issue where BZERO and BSCALE keywords were appended to headers in
the wrong location (#56)
- ``FITS_record`` objects (table rows) have full slicing support, including
stepping, etc. (#59)
- Fixed a bug where updating multiple files simultaneously (such as when
running parallel processes) could lead to a race condition with mktemp()
(#61)
- Fixed a bug where compressed image headers were not in the order expected by
the funpack utility (#62)
GD module is an interface to the GD library written by Thomas Bouttel.
"It allows your code to quickly draw images complete with lines,
arcs, text, multiple colors, cut and paste from other images, and
flood fills, and write out the result as a .PNG file. This is
particularly useful in World Wide Web applications, where .PNG is
the unencumbered format used for inline images."
It has been extended in some ways from the original GD library.
1.6.6 (27 Nov 2008)
--------------------
* Fixed issue that caused all images to be 570x570 on some systems, due to a
change in the python2.5 C API.
* Improved setup.py and Makefiles.
* Contours can now be used with PlotKey.
* Added Labels component. Similar to Points, but with text labels instead
of symbols.
1.6.5 (20 Mar 2007)
-------------------
* Replaced Numeric with numpy.
1.6.4 (08 Mar 2004)
-------------------
* Phil Kromer contributed the new ColoredPoints and Density components.
See example9.py for details.
* Todd Fox contributed Makefiles for building with MS Visual C++.
* Can now specify the width/height of postscript output, by passing (e.g.)
width="5in" or height="10in" to the functions which produce postscript
output. Default values are in the [postscript] section of config.ini.
The old [printer]/paper option is now [postscript]/paper.
* Added UpperLimits, LowerLimits components. These produce symbols
with half-arrows indicating the true value is below/above the
point.
* Added TeX codes \`,\',\^,\",\~ for character accents.
The configure script determines the availability of libXxf86dga only by the existence of X11/extensions/xf86dga.h. This leads to a linkage error on platforms (e.g. Darwin) where the header in question can be found in the system default path but the corresponding library is installed elsewhere. The problem goes away if we had the library buildlinked, and I see no reason for not enabling DGA input anyway.
The main motivation is that index.theme now mentions "scalable"
directories, so symbolic icons have a chance of being found.
The licence has changed from GPL2 to CCBYSA3 and LGPL3.
Many icons were added, and a few have been removed:
- logviewer.png which is distributed by gnome-utils
- battery-charging.png which now has a variety of charging states
and some which can be replaced by more generic icons:
- palm-pilot-sync.png -> emblem-synchronizing.png
- palm-pilot.png -> pda.png
- visor.png -> pda.png
upstream or submitted for upstream. Import changes:
A new hidden wire display option was added to help with retopology. Mesh
Bisect is a new tool to cut meshes in half. The Bridge, Edgenet fill,
Grid fill and Symmetrize tools were improved. New curve and lattice
editing tools were added too.
Hair rendering was improved with a new Hair shader and reorganized
settings. Subsurface scattering uses a new sampling algorithm and now
supports bump mapping and texture blurring. Sky rendering now uses a
more accurate sky model. New blackbody, vector transform and HSV nodes
were added. The non-progressive integrator was renamed to Branched Path
Integrator, and is now available for GPU rendering.
The Motion tracker now supports plane tracking, which can be used to
replace billboards, screens and other flat things in footage.
Lists in the user interface can now be resized, sorted and filtered.
Further there are small improvements for vertex parenting, empty
objects, the shrinkwrap modifier, mask editing, armatures, f-curves and
drivers.
FBX Import support has been added and FBX/OBJ can now export split
normals (without the need for the edge split modifier).
In addition to the new features, over 270 bugs that existed in previous
releases have been fixed.
2013-12-30 6.8.8-1 Cristy <quetzlzacatenango@image...>
* New version 6.8.8-1, SVN revision 14087.
2013-12-27 6.8.8-1 Cristy <quetzlzacatenango@image...>
* Support points argument for draw MSL element.
* Fix misplaced closing parenthesis for strncmp() call in magick/xml-tree.c.
* The -page option now correctly sets the image page offset (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24701).
* The -evaluate-sequence sum returns a proper alpha channel now (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24704).
2013-12-26 6.8.8-1 Dirk Lemstra <dirk@snakeware...>
* Added support for reading zip compressed PSD files. (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24676).
2013-12-25 6.8.8-0 Cristy <quetzlzacatenango@image...>
* New version 6.8.8-0, SVN revision 14027.
2013-12-23 6.8.8-0 Cristy <quetzlzacatenango@image...>
* Blurring with transparency no longer returns a halo (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24665).
* Eliminate ICC profile memory leak for JP2 coder (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=24679).
2012-12-21 6.8.8-0 Dirk Lemstra <dirk@snakeware...>
* Made librsvg the default svg library for the windows distribution.
2013-12-10 6.8.7-10 Cristy <quetzlzacatenango@image...>
* New version 6.8.7-10, SVN revision 13965.
2013-12-10 6.8.7-10 SiuChi Chan <...>
* Fix crash when using -resize with GPU acceleration (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24603).
2013-12-08 6.8.7-9 Cristy <quetzlzacatenango@image...>
* New version 6.8.7-9, SVN revision 13950.
2013-12-05 6.8.7-9 SiuChi Chan <...>
* Silence warning related to GPU memory issues.
* Check if OpenCL is disabled in checkOpenCLEnvironment() method.
* Turn off OpenCL path for Intel OpenCL to avoid crash when not enough memory.
* Fixed a bug for OpenCL convolution.
* Reduce compiler warnings.
2013-12-03 6.8.7-9 Glenn Randers-Pehrson <glennrp@image...>
* Fixed bug in coders/png.c that caused -define png:color-type=0 to
fail (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=24568).
2013-11-30 6.8.7-9 Dirk Lemstra <dirk@snakeware...>
* Fixed bug in automatic selection of OpenCL device (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24542).
* Fixed transparency for 32 bits BMP.
2013-11-28 6.8.7-9 Cristy <quetzlzacatenango@image...>
* The -type bilevel option sometimes returned an all white image (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24444).
* Check blue channel threshold for -solarize option (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24473).
2013-11-27 6.8.7-8 Cristy <quetzlzacatenango@image...>
* New version 6.8.7-8, SVN revision 13850.
2013-11-27 6.8.7-8 SiuChi Chan <...>
* Add an OpenCL-accelerated analog of AddNoiseImage().
2013-11-23 6.8.7-7 Cristy <quetzlzacatenango@image...>
* New version 6.8.7-7, SVN revision 13827.
2013-11-23 6.8.7-7 SiuChi Chan <...>
* Simplified interface to initialize the OpenCL environment.
* Automatic OpenCL device selection algorithm.
* Support ModulateImage() acceleration.
* Reduce the memory requirement for accelerated blur and unsharp mask.
2013-11-16 6.8.7-6 Cristy <quetzlzacatenango@image...>
* New version 6.8.7-6, SVN revision 13767.
2013-11-14 6.8.7-6 Cristy <quetzlzacatenango@image...>
* Fix possible memory corruption when writing PSD images (bug report from
Justin Grant).
* Constrain color reduction acceleration to positive integers (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=24459).
* fx:maxima.a now returns the alpha value rather than opacity (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24461).
2013-11-08 6.8.7-5 Cristy <quetzlzacatenango@image...>
* New version 6.8.7-5, SVN revision 13682.
2013-11-03 6.8.7-5 Cristy <quetzlzacatenango@image...>
* The jpeg:extent option no longer returns double-free exception (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24366).
* Turn off arch-specific optimisations (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24353).
* The -type bilevel option no longer returns black image (reference
http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=24394).
2013-11-03 6.8.7-5 Dirk Lemstra <dirk@snakeware...>
* Added support for pangocairo to the windows distribution.
* Added /OpenCL option to configure.exe to enable OpenCL.
2013-10-31 6.8.7-5 Glenn Randers-Pehrson <glennrp@image...>
* Fixed cut-and-paste error in version.c that caused the "png" delegate
to be listed twice by the "convert -version" command.
Ruby-GNOME 2 is a set of Ruby language bindings for the various
application development libraries included with the GNOME/GTK+
environment.
Ruby/ClutterGTK is a Ruby binding of Clutter-GTK.
Ruby-GNOME 2 is a set of Ruby language bindings for the various
application development libraries included with the GNOME/GTK+
environment.
Ruby/Clutter is a Ruby binding of Clutter.
Clutter-GTK 1.4.4 19/03/2013
===============================================================================
Changes since 1.4.2:
• Bump the dependency on GTK, to remove a workaround for broken state
propagation in the style code.
• Bump the dependency on Clutter, to enable using the accessibility
support in GTK without conflicting with the one in Clutter.
• Improve the multi-backend support, to prepare ourselves for the
shiny Wayland future.
List of bugs fixed:
#691468, #695685, #692399
Many thanks to:
Bastien Nocera, Cosimo Cecchi, Alejandro Piñeiro
Clutter-GTK 1.4.2 17/12/2012
===============================================================================
Changes since 1.4.0:
• Remove annotation from constructor function. [Guillaume Desmottes]
• Ensure the event filter installed by GtkClutterEmbed works correctly
when multiple embeds are realized/unrealized. [Cosimo Cecchi]
• Fix links in the DOAP file.
List of bugs fixed:
#686697, #689879
Many thanks to:
Guillaume Desmottes, Cosimo Cecchi
Clutter-GTK 1.4.0 17/10/2012
===============================================================================
Changes since 1.3.2:
• Drop deprecated Clutter API usage from classes and examples.
• Ensure that GtkClutterEmbed works with GTK+ < 3.4.
• Documentation fixes.
• Track the size requests from the embedded ClutterStage. [Tristan Van
Berkom]
• Translation updates.
List of bugs fixed:
#681462, #669877, #684171
Many thanks to:
Piotr Drąg, Takeshi AIHANA, Tristan Van Berkom
Clutter-GTK 1.3.2 05/06/2012
===============================================================================
Changes since 1.2:
• Ensure that redraws follow resizing, to avoid the contents of the
Stage "lagging" behind. [Alexander Larsson]
• Allow GtkClutterEmbed to use the embedded stage layout manager to
request its size. [Alexander Larsson]
• Avoid warnings when hiding or removing GtkWidgets embedded inside
a GtkClutterActor. [Bastien Nocera, Alexander Larsson]
• Make GtkClutterActor reactive by default. [Alexander Larsson]
List of bugs fixed:
#675867, #677282, #677493
Many thanks to:
Alexander Larsson, Bastien Nocera, Colin Walters
Clutter-GTK 1.2.0 23/03/2012
===============================================================================
Changes since 1.1.2:
• Ensure that style changes are propagated to embedded widgets
• Avoid segfaults when unrealizing.
• Introspection fixes.
List of bugs fixed:
#670662 - Gtk-CRITICAL **: gtk_widget_unrealize: assertion
`GTK_IS_WIDGET (widget)' failed
#667742 - entries argument of gtk_clutter_init_with_args not
annotated as array
Many thanks to:
Cosimo Cecchi, Evan Nemerson, Guillaume Desmottes, Ryan Lortie
Clutter-GTK 1.1.2 23/11/2011
===============================================================================
Changes since 1.0:
• Drop all flavours
Since Clutter 1.9 and GTK+ 3.0 support multiple backends with
selection at run-time, Clutter-GTK can drop the multiple flavours,
and support the current Clutter and GDK backend. This is still a
work in progress, so not every Clutter or GDK backend provide the
same set of features. Basic Clutter embedding works with the X11,
GDK, and Windows backends. GTK+ widgets embedding inside Clutter
works only on the X11 backend.
• Do not disable multi-device
Clutter was fixed to support XI2 events coming from GDK without
destroying the event cookie; this means that Clutter-GTK can
stop disabling multi-device support in GDK. If your code was
calling gdk_disable_multi_device() (something that shouldn't have
been done in the first place) this means that event handling
will be broken.
• Make GtkClutterEmbed expand by default
The GtkClutterEmbed widget should expand by default on both#
orientations; this allows using the default size negotiation
mechanisms in GTK, and drop the hack of setting a minimum size
on the widget.
Many thanks to:
Marc-André Lureau, Matthias Clasen
Clutter-GTK 1.0.4 27/09/2011
===============================================================================
Changes since 1.0.2:
• Build fixes
- Link against libm [Andre Klapper, Frédéric Péters]
- Fix build on non-X11 systems [Chun-wei Fan]
- Fix out of tree builds [Colin Walters]
Clutter-GTK 1.0.2 26/07/2011
===============================================================================
Changes since 1.0.0:
• Build fixes
• Make sure that GtkClutterActor works with GTK+ ≥ 3.1 [Cosimo Cecchi]
• Check before unmapping the stage [Raluca Elena Podiuc]
• Fix for introspection annotations [Simon Wenner]
Clutter-GTK 1.0.0 05/04/2011
===============================================================================
Changes since 0.91.8:
• Depend on gtk+ ≥ 3.0.0.
• Depend on clutter ≥ 1.4.0.
• Fix build for GLES environments. [Andreas Mueller]
• Use a global filter for GDK events.
• Fix various compiler warnings.
• Allow calling gtk_clutter_init* multiple times.
• Fix build on Windows.
• Append the API version to the API reference. [Marvin Schmidt]
• Do not export private symbols from the shared
library. [Emilio Pozuelo Monfort]
Clutter-GTK 0.91.8 14/01/2011
===============================================================================
Changes since 0.91.6:
• Depend on gtk+ ≥ 2.91.7.
• Disable multi-device support in GDK to unbreak the event
filter function we use to dispatch events from GDK to
Clutter.
• Update to the new StyleContext API.
• Remove the GdkColor/GtkStyle/ClutterColor utility API: the
old GtkStyle colors have been deprecated in GTK+.
• Use gettext to localize messages.
Clutter-GTK 0.91.6 22/12/2010
===============================================================================
Changes since 0.91.4:
• General clean up of the code.
• Introspection fixes.
• Moved the texture integration with gtk+ types into a separate
class, GtkClutterTexture.
• Fixes to work with gtk+ ≥ 2.91.7.
• Added translation domain.
Clutter-GTK 0.91.4 11/11/2010
===============================================================================
Changes since 0.91.2:
• Update after the removal of gtk_widget_hide_all()
http://bugzilla.clutter-project.org/show_bug.cgi?id=2377
Many thanks to:
Flo Gravo
Clutter-GTK 0.91.2 05/10/2010
===============================================================================
Changes since 0.90.2:
• Depend on gtk+ ≥ 2.91.1
• Use cairo surfaces to replace the deprecated GdkPixmap.
• Remove GdkColormap.
• Use GtkWidget instead of GtkSizeRequest.
• Introspection and build fixes.
Many thanks to:
Lucas Rocha
Clutter-GTK 0.90.2 09/08/2010
===============================================================================
Changes since 0.10:
• Depend on Clutter 1.3 and GTK+ 2.90, in preparation for the
1.4 and 3.0 cycles, respectively.
• Allow embedding GTK+ widgets inside the ClutterStage provided
by GtkClutterEmbed.
• Whenever possible, use a GDK filter function to let Clutter
update its internal state.
• Allow retrieving the GOptionGroup for Clutter-GTK, to defer
the initialization.
• Remove GtkClutterScrollable and GtkClutterViewport.
Many thanks to:
Danielle Madeley
Alexander Larsson
Christian Persch
Gord Allott
Gustavo Noronha Silva
Javier Jardón
Clutter-GTK is a library providing facilities to integrate Clutter into GTK+
applications. It provides a GTK+ widget, GtkClutterEmbed, for embedding the
default ClutterStage into any GtkContainer.
while here, enable introspection option by default.
Clutter 1.16.2 2013-11-18
===============================================================================
• List of changes since Clutter 1.16.0
- Allow creating intervals and transitions from ClutterScript
ClutterInterval now implements ClutterScriptable.
- X11 backend improvements
Update the device coordinate handling; remove the dependency on
the XFixes extension.
- Wayland backend improvements
Implement the ClutterStage:cursor-visible property.
- Apply the correct opacity when painting ClutterImage
- Throttle touch update events
- Fix preferred size of TableLayout
Take account of the visibility of the children when computing the
preferred size of a ClutterActor using a ClutterTableLayout as its
layout manager.
- Documentation fixes
- Translation updates
Hungarian, Slovak, Greek, Catalan (Valencian)
• List of bugs fixed since Clutter 1.16.0
#707071 - Remove use of XFixes for showing/hiding the cursor
#709762 - ClutterDragAction can mix pointer and touch events
#709590 - wayland: Implement support for 'cursor-visible' stage property
#709761 - Implement touch update event throttling
#709620 - ClutterEvent: Mention _get_source_device() in docs
#708922 - actor: Correct setting the offscreen-redirect property
#709434 - [REGRESSION] clutter_box_layout_allocate:
Process /usr/bin/gnome-shell was killed by signal 5 (SIGTRAP)
#708850 - DragAction warning when setting handle to null
Many thanks to:
Jasper St. Pierre, Lionel Landwerlin, Bastian Winkler, Bastien Nocera,
Florian Müllner, Balázs Úr, Carles Ferrando, Efstathios Iosifidis, Jonas
Ådahl, Pavol Klačanský
Clutter 1.16.0 2013-09-23
===============================================================================
• List of changes since Clutter 1.15.96
- Fix a division by zero in the X11 backend
- Translation updates
Portuguese, Danish
• List of bugs fixed since Clutter 1.15.96
#707033 - Hidden division by zero in examples/basic-actor.c
Many thanks to:
Duarte Loreto, Kenneth Nielsen.
Clutter 1.15.96 2013-09-20
===============================================================================
• List of changes since Clutter 1.15.94
- Fix a crasher bug happening on X11
Some events coming from the system would result in a segmentation fault.
• List of bugs fixed since Clutter 1.15.94
#708439 - clutter-xi2: don't access the stage if we don't have one
Clutter 1.15.94 2013-09-19
===============================================================================
• List of changes since Clutter 1.15.92
- Improve the evdev input backend
The evdev input backend is used when writing applications and compositors
that directly drive the frame buffer on Linux. By ensuring that the evdev
input backend works correctly it is possible to manage input sources like
pointers, keyboards, and touch devices using the raw evdev device nodes.
Clutter now depends on libevdev in order to poll the evdev interfaces.
- Allow scaling windowing surfaces
The main part of the work to support high resolution displays is to make
sure that windowing surfaces can be created with a scaling factor, while
trasparently handling the new size from an application's perspective. The
scaling factor is currently set manually, but it in the near future it will
be automatically set by the environment.
- Translation updates
Serbian, Aragonese, Russian, Latvian, Belarusian, Assamese, Indonesian,
German, Hebrew.
• List of bugs fixed since Clutter 1.15.92
#706652 - evdev: add callback to constrain the pointer position
#706543 - evdev: use monotonic times for the events
#706494 - an assortment of wayland and evdev related changes
#707377 - wayland: Check for NULL surface on pointer leave events
#707808 - box-layout: Fix floating point truncation when calculating a
child's size
#707774 - ClutterClickAction can trigger a crash if disposes at
inappropriate time
#707869 - Add API to restrict the windowing backend to load
#708079 - Clutter clutter-1.16 branch fails to commit after commit
da3e6988
#708383 - ClutterEvent: preserve extended state across
clutter_event_copy()
Many thanks to:
Giovanni Campagna, Emmanuele Bassi, Lionel Landwerlin, Andika Triwidada,
Chun-wei Fan, Florian Müllner, Ihar Hrachyshka, Jasper St. Pierre, Jorge
Pérez Pérez, Nilamdyuti Goswami, Rob Bradford, Rūdolfs Mazurs, Yuri
Myasoedov, Мирослав Николић.
Clutter 1.15.92 2013-09-02
===============================================================================
• List of changes since Clutter 1.15.90
- Fix regression in BoxLayout for RTL text direction
- Update Visual Studio build files
- Translation updates
Polish, French, Slovak, Lithuanian, Catalan
• List of bugs fixed since Clutter 1.15.90
#706450 - box-layout: Fix RTL layout swapping with non-zero container
offsets
Many thanks to:
Chun-wei Fan, Jasper St. Pierre, Alexandre Franke, Aurimas Černius, Gil
Forcada, Ján Kyselica, Piotr Drąg
Clutter 1.15.90 2013-08-19
===============================================================================
• List of changes since Clutter 1.15.2
- Update the Wayland backend
Use the new 1.2 behaviour and API, and improve the coverage of windowing
system features, alongside a slew of bugs.
- Drop support for XInput 1.x
The XInput 1.x extension was never really used after the introduction of
the 2.x version.
- Fix event and device handling when using evdev
- Allow using ClutterContent on a ClutterStage
- Fixes for the Windows backend
The build script has also been updated with the required dependencies.
- Documentation fixes
- Translations updated
• List of bugs fixed since Clutter 1.15.2
#703809 - Some LayoutManager fixes
#704625 - Cannot assign a ClutterContent to a stage
#698836 - Add interactive test for ClutterZoomAction/ClutterRotateAction
#705739 - Crash when removing a ClutterActor from a scene at the end of
an animation
#705710 - evdev: fix X11 to evdev keycode translation
#704269 - evdev: add a way for applications to tweak how devices are
opened
#704457 - Setting the size of the stage causes it to not be shown on
wayland
#699578 - Implement foreign surface support for stages
#704279 - wayland: Add API for disabling the event dispatching
#703336 - clutter-actor: Make clutter_actor_has_mapped_clones public
#701356 - Update the windows backend to work with latest Cogl
#703969 - Select for events with XIAllMasterDevices under XI2
#703878 - wayland: Don't pass the shell and compositor down to Cogl
#703608 - Update ClutterWaylandSurface to use a resource instead of
wl_buffer
#703877 - Bump the required Cogl version to 1.15.1
Many thanks to:
Giovanni Campagna, Neil Roberts, Florian Müllner, Jasper St. Pierre, Rob
Bradford, Matej Urbančič, Adel Gadllah, Chao-Hsiung Liao, Chris Cummins,
Chun-wei Fan, Lionel Landwerlin, Rafael Ferreira
Clutter 1.15.2 2013-07-10
===============================================================================
• List of changes since Clutter 1.14
- Improve state tracking and short circuiting
ClutterActor now tracks clones and unmapped actors more aggressively, to
reduce the amount of work necessary when updating the scene graph.
- Wayland backend improvements and updates
- Documentation updates
Clean up the API reference for readability, and improve the comments in
the inlined example code. Also, include the cookbook in the distribution
tarball.
- Allow installation of conformance tests
Clutter now allows installing its conformance tests into a well-known
location; this allows running the conformance test suite against an
installed version of Clutter.
- Add ClutterFlowLayout:snap-to-grid
ClutterFlowLayout users can now ask the layout manager to not align the
actors to a grid.
- Improve gesture recognizers
- Deprecations
ClutterText::cursor-event has been replaced by ClutterText::cursor-changed;
ClutterGeometry has been deprecated; ClutterActor::realize and ::unrealize,
along with their virtual functions, have been deprecated.
• List of bugs fixed since Clutter 1.14
#682789 - Deprecate ClutterGeometry (and remove it for 2.0)
#698668 - A few improvements to ClutterGestureAction
#698669 - Fix "trigger edge after" behavior with more than 1 touch point
#698671 - Refactor event handling code in ClutterGestureAction
#698674 - Improve ClutterZoomAction behavior
#698783 - Add a paint callback for ClutterStage
#698766 - Implicit transitions queued on invisible actors should be ignored
#648873 - Feature request: ClutterFlowLayout not aligning on a grid
#699675 - Offscreen effects allocating too much memory
#692706 - Frequent crash in cally_stage_notify_key_focus_cb
#701974 - x11: trap errors when calling XIQueryDevice
#696813 - clutter_actor_set_child_above/below_sibling leaking a reference
on the actor
#701208 - deform-effect: correctly set the cull-face mode of the back
pipeline
#700980 - Tap action now longer works
#702016 - ClutterText reset font when dpi changes and font was set using
a pango description
#702610 - text: relayout on cursor visibility change
#702941 - Install conformance tests
RH#975171 - gnome-shell: screen magnifier can cause crash with Cogl error
#702202 - conform tests hang on wayland
#703188 - Stage doesn't appear when running under Wayland
#703476 - tests/actor-offscreen-redirect: Fix race condition
#703566 - Need to be able to share Wayland display between GTK and Clutter
#697285 - Inconsistent setting of the time member on the events
#703882 - Prevent buffer/text/max-length properties notification in the
allocation cycle
Many thanks to:
Lionel Landwerlin, Chris Cummins, Matthias Clasen, Rob Bradford, Alejandro
Piñeiro, Jasper St. Pierre, Bastian Winkler, Colin Walters, Craig R. Hughes,
Daniel Mustieles, Marek Černocký, Adel Gadllah, Ask H. Larsen, Bastien
Nocera, Cosimo Cecchi, Dimitris Spingos, Duarte Loreto, Emanuele Aina, Fran
Diéguez, Gil Forcada, Matej Urbančič, Milo Casagrande, Neil Roberts, Rui
Matos, Samuel Degrande, Sebastian Keller, Sjoerd Simons.
while here, enable introspection option by default.
Cogl 1.16.0 2013-09-23
• List of changes since Cogl 1.15.10
» MSVC build updates
» Correctly mark CoglAtlasTexture api as public
» Lots of gtk-doc/introspection annotation fixes
• Gnome Bugzilla bugs closed since 1.15.10:
#704750 - egl: don't bind the wayland display if the extension is
not available
Many thanks to:
Lionel Landwerlin
Robert Bragg
Chun-wei Fan
Giovanni Campagna
Neil Roberts
Cogl 1.15.10 2013-09-02
• List of changes since Cogl 1.15.8
» Added API to set the onscreen template on a CoglDisplay outside of
the constructor.
» Added public API to configure the layout of displays when using
the KMS winsys.
» Added a cogl_point_coord builtin variable for snippets which can
be used to render point sprites in more dynamic ways.
» cogl_texture_new_with_size now returns NULL on failure. This
behaviour was accidentally changed in 1.14.0.
» Fixed a problem with setting the precision specifiers on GLES2
which was causing a lot of problems with the latest Mesa.
» Added a “webgl” driver to manage the differences in GLES2 when
compiling with emscripten.
» Fixed a bug with paths which was causing Clutter's texture-fbo
test to crash.
» Some issues with introspecting the cogl-pango API were fixed.
» Added an example using point sprites.
» Build fixes for building with MinGW32.
» Updates to the MSVC build files.
» Documentation fixes to the snippets API.
• Gnome Bugzilla bugs closed since 1.15.8:
#705837 - kms: add public API to override the default configuration
of outputs
Many thanks to:
Chun-wei Fan
Robert Bragg
Jasper St. Pierre
Damien Lespiau
Giovanni Campagna
Cogl 1.15.8 2013-08-20
• List of changes since Cogl 1.15.6
Brown bag release to fix a problem with including cogl-path.h from
cogl.h that meant only code defining
COGL_ENABLE_EXPERIMENTAL_2_0_API would get access to the CoglPath
API.
We now ignore whether COGL_ENABLE_EXPERIMENTAL_2_0_API is defined so
clutter which does define it will see the api and so will clutter
users that don't define it.
Cogl 1.15.6 2013-08-19
• List of changes since Cogl 1.15.4
» Fixed runtime selection of egl-kms backend
» Split out the CoglPath api in-line with cogl master to reduce
divergence, but updated to not break the 1.x API/ABI
» Reverted the semantic change to cogl_offscreen_new_to_texture to
make it synchronously allocate as it did in cogl-1.14. A
replacement cogl_offscreen_new_with_texture api has been
introduced to support the asynchronous allocation behaviour
required to allow configuration of a framebuffer before
allocation.
» Fixed a problem with binding attribute locations with desktop GL
drivers, required to work with the latest Mesa.
» Some configure.ac documentation fixes
» In cogl-gst we make sure to only emit the "pipeline-ready" signal
once the new textures have actually been uploaded.
» Various MSVC build fixes
Note: we took some care to try and avoid breaking the ABI and
chaning the soname relative to the last 1.15.4 snapshot.
• Gnome Bugzilla bugs closed since 1.15.4:
#703500 - 49 Conform Tests Regressed (FAIL)
#703174 - Crash when switching user with gnome 3.8 using nvidia drivers
#705836 - egl-kms: set the EGL_PLATFORM explicitly
#705591 - SIGSEGV in various conformance tests on wayland
Many thanks to:
Chun-wei Fan
Neil Roberts
Robert Bragg
Adel Gadllah
Fan Chun-wei
Giovanni Campagna
Lionel Landwerlin
Cogl 1.15.4 2013-07-30
• List of changes since Cogl 1.15.2
» Added experimental API to directly expose atlas textures.
» Added new_from_file/data/bitmap APIs for sliced textures.
» Added new_from_file APIs for 2D textures.
» Added cogl_primitive_draw as a new name for the
cogl_framebuffer_draw_primitive function.
» Removed the attribute drawing APIs. Instead applications should
create a primitive and draw that.
» Fixed bug where Cogl would busy-wait with 100% CPU if the Wayland
compositor is closed.
» The COGL_FRAME_EVENT_SYNC events are now sent based on the frame
callback with the Wayland backend.
» New cogl_gst_video_sink_is_ready() function to determine whether a
Cogl-GST video sink is ready to have the pipeline queried.
» Fixed a potential bug with the blending enabled state when copying
a pipeline.
» Fixed detecting the Mesa vendor when GL 3 is used.
» Fixed a reference leak on the CoglRenderer.
» Fixes to the Visual Studio build files.
Many thanks to:
Robert Bragg
Chun-wei Fan
Damien Lespiau
Cogl 1.15.2 2013-07-09
• List of changes since Cogl 1.14.0
» Lots of Wayland backend work, including updated compositor support
» Updated cogland, a simple example wayland compositor using Cogl
» Made the onscreen resize callback work the same as the frame callback
» New cogl_onscreen_swap_buffers_with_damage api
» New fence API
» New Emscripten support (only basic at the moment)
» Improved blend state tracking
» New cogl_onscreen_add_dirty_callback() api for window systems
that need to notify application of dirty/damaged regions that must
be redrawn by the application
» Started adding internal unit tests to complement the conformance
tests
» New support for per-vertex point sizes
» New cogl-gst sub-library added enabling gstreamer integration into
Cogl based applications. Notably the design is compatible with
applications adding custom shader snippets to a CoglPipeline that
handles video sampling so application will be able to chain
together shader based affects without requiring intermediate
renderers.
» Adds HSL color conversion apis
» The Conformance test suite can now be installed with a .test file
enabling them to be run by the gnome-desktop-testing-runner for example.
• Bugzilla bugs closed since 1.14.0:
#691752 - add fence/sync API
#696730 - Compile failure with 1.14.0 due to extra arg in bitmap functions
#697330 - Fails to build with the gold linker due to missing reference to libm
#699431 - [PATCH] xlib: Don't crash just because the display doesn't expose RANDR
#700088 - compile failure: 'wayland_surface' has incomplete type
#702570 - cogl 1.16: Regression with event propagation in champlain
#702942 - Install conformance tests
#702999 - undefined reference to `wl_buffer_is_shm'
#703553 - Add support for automake 1.14
Many thanks to:
Neil Roberts
Robert Bragg
Andreas Oberritter
Chris Cummins
Damien Lespiau
Emanuele Aina
Plamena Manolova
Roy.Li
Adam Jackson
Daniel Stone
Inaki Larranaga Murgoitio
Lionel Landwerlin
Matthias Clasen
Milo Casagrande
Rico Tzschichholz
Yosef Or Boczko
It is for clock_gettime with CLOCK_REALTIME and also changed to use
CLOCK_REALTIME for other than OS X.
Back to use CLOCK_MONOTONIC and use patch for OS X from MacPorts instead.
Bump PKGREVISION.
Security Fixes:
EPT: Fix crash observed when Ghostscript fails to produce useful output. This was particularly noticeable when Ghostscript was not installed. This crash could be used to cause denial of service.
PNG: With libpng 1.6.X, avoid a crash while copying a PNG with a "known incorrect ICC profile". This crash could be used to cause denial of service.
Bug fixes:
Build: Fix cross-compilation for MinGW64 on Linux build machine.
Build: configure FreeType test no longer insists that <freetype/freetype.h> can be included.
CMS profile: Only delete the CMS transform if it is non-null. Fixes assersion observed when lcms returned a null profile and GraphicsMagick attempted to deallocate it.
Drawing: Improve error handling logic so that drawing returns quickly on pixel access errors rather than plowing on ahead. This avoids problems with SVGs which take seemingly forever to render.
Drawing via C/C++ APIs: BevelJoin no longer causes a MVG parsing error.
EPT: Fix crash observed when Ghostscript fails to produce useful output. This was particularly noticeable when Ghostscript was not installed.
OpenMP: Revert use of omp_set_dynamic() since it caused performance issues when using GCC's GOMP implementation and the number of threads to use is specified.
EXIF profile: Support the SubjectArea EXIF tag.
MIFF writer: PseudoClass format was written incorrectly for depth greater than 8.
MIFF writer: RLE compressed format used inverted alpha from the other subformats and contrary to the MIFF specification.
MIFF reader: Fixes Fixes to be able to read MIFF written by ImageMagick 6.X, including DirectClass grayscale images (except for RLE compressed).
Mosaic: Fixed unsigned underflow problem with -mosaic when page offset is negative and exceeds image width or height, resulting in assertions, out of memory errors, or pixel cache limit errors.
PDF: Consistently initialize Image page width and height to image width and height. While general to all of GraphicsMagick, this change is to assure that the PDF writer computes page dimensioning consistently. PDF page dimensioning was wrong if the image had been resized with -geometry "100%".
PAM: Fix MAXVAL scaling when reading PAM images. PAM was only working correctly for images with 256 or 64k levels.
PNM: PGM "P2" format writer wrote bad output for 8-bit depth.
PNG: With libpng 1.6.X, avoid a crash while copying a PNG with a "known incorrect ICC profile".
PNG: Q8 GM build now correctly reads 16-bit PNG files.
TIFF writer: Try to avoid writing more than 32k strips per image by increasing rows-per-strip since some programs fail to read images with more than 32k strips per image.
TIM reader: PSX TIM reports 8-bit depth (rather than 16).
TTF font rendering: Improve FreeType rendering error logic so that rendering returns immediately on pixel access errors rather than plowing on ahead.
TTF font rendering: Support rendering UTF-8 up to 21-bit code points. Was only supporting 16-bit code points.
Wand API: DrawSetStrokeDashArray() / DrawGetStrokeDashArray(), fix failure to work properly due to this code path never being tested.
Windows Ghostscript: 64-bit GraphicsMagick no longer requires both 32-bit and 64-bit builds of Ghostscript to be installed in order to read Postscript and PDF formats.
XPM reader: Reported depth now depends on the colormap rather than always claiming to be 16-bit.
New Features:
JPEG: Add support for writing 'XMP' profile.
PNM: As a simple non-standard extension to the standard PNM and PAM formats, support writing and reading 32-bit sample depth. Writing such files is only supported by the Q32 build although they may be read by any build.
WebP: Now supports reading and writing Google's WebP format. This feature is not currently supported by the Windows Visual Studio build.
Version 1.6.8beta01 [November 24, 2013]
Moved prototype for png_handle_unknown() in pngpriv.h outside of
the #ifdef PNG_SET_UNKNOWN_CHUNKS_SUPPORTED/#endif block.
Added "-Wall" to CFLAGS in contrib/pngminim/*/makefile
Conditionally compile some unused functions reported by -Wall in
pngminim.
Fixed 'minimal' builds. Various obviously useful minimal configurations
don't build because of missing contrib/libtests test programs and
overly complex dependencies in scripts/pnglibconf.dfa. This change
adds contrib/conftest/*.dfa files that can be used in automatic build
scripts to ensure that these configurations continue to build.
Enabled WRITE_INVERT and WRITE_PACK in contrib/pngminim/encoder.
Fixed pngvalid 'fail' function declaration on the Intel C Compiler.
This reverts to the previous 'static' implementation and works round
the 'unused static function' warning by using PNG_UNUSED().
Version 1.6.8beta02 [November 30, 2013]
Removed or marked PNG_UNUSED some harmless "dead assignments" reported
by clang scan-build.
Changed tabs to 3 spaces in png_debug macros and changed '"%s"m'
to '"%s" m' to improve portability among compilers.
Changed png_free_default() to free() in pngtest.c
Version 1.6.8rc01 [December 12, 2013]
Tidied up pngfix inits and fixed pngtest no-write builds.
Version 1.6.8rc02 [December 14, 2013]
Handle zero-length PLTE chunk or NULL palette with png_error()
instead of png_chunk_report(), which by default issues a warning
rather than an error, leading to later reading from a NULL pointer
(png_ptr->palette) in png_do_expand_palette(). This is CVE-2013-6954
and VU#650142.
Version 1.6.8 [December 19, 2013]
Release 1.12.8 (2013-12-23) Kouhei Sutou <kou@cozmixng.org>
===========================================================
Fixes
-----
* Bundled missing libwinpthread-1.dll into gem for Windows.
[Reported by Masafumi Yokoyama]
Thanks
------
* Masafumi Yokoyama
Release 1.12.7 (2013-12-23) Kouhei Sutou <kou@cozmixng.org>
===========================================================
Improvements
------------
* Added paper sizes of ISO B series and JIS B series.
[Patch by 5.5]
* Added Windows binary for Ruby 2.1.0.
* Updated bundled cairo to 1.12.16 from 1.12.14 for Windows.
Fixes
-----
* Fixed a bug that Cairo::ImageSurface.new(cloned_data, ...)
changes both the original data and the cloned data.
[Patch by Naoyuki Hirayama]
Thanks
------
* 5.5
* Naoyuki Hirayama
/usr/X11R7 on its own, and then the PLIST doesn't match, so pass in
${BUILDLINK_PREFIX.freetype2} explicitly.
Also, because if you have tk installed it finds it and then fails
because it isn't buildlinked, pull in tk and add the tk library to the
PLIST.
PKGREVISION -> 1
This release includes a refactoring of the optimised read paths for RGBA data, optimisations for some of the python bindings to Imath, improvements to the cmake build environment as well as additional documentation describing deep data in more detail.
Note that we built with --disable-gtk-theme, so there is no change now that
the old theme engine is removed.
Version 2.40.1
- Build fixes
- Crash fixes
Version 2.40
- Add support for parsing rgba() colours and improve colour parsing
- rsvg-filter: Fix memory leak
- Remove support for GTK+2 along with the old theme engine
- Require at least version 3.2 of GTK+
- Remove support for old versions of gdk-pixbuf
- Add eps support to rsvg-convert
Version 2.39.0
- don't load resources from the net (#691708, CVE-2013-1881)
Version 2.37.0
- bump pango requirement to 1.32.6
- mark pixbuf loader as threadsafe
* Only use RLIMIT_AS when available (#708666)
* Only use setrlimit when available (#710690)
* Avoid a bashism (#711600)
* Visual C++ build fixes
* Use GLib setup for installed tests
* Make installed tests find data files
* Install some tests
* ANI: Set an error if we fail to produce an animation
* Add gdk_pixbuf_loader_write_bytes (696917)
* Update GIcon implementation (688820)
* Fix libpng linking issues (698093)
* Translation updates
Pillow is the "friendly" PIL fork.
The Python Imaging Library (PIL) adds image processing capabilities to your
Python environment. This library provides extensive file format support, an
efficient internal representation, and powerful image processing capabilities.
History
=======
1.0.0 (2013-10-05)
------------------
* Support python 3.2 and 3.3 (thanks to @masayuko)
* Drop supports for python 2.4 and 2.5
* Replace dependency: PIL -> Pillow
History
=======
0.5.1 (2013-10-22)
------------------
* Fix bugs
0.5.0 (2013-10-05)
------------------
* Support python 3.2 and 3.3 (thanks to @masayuko)
* Drop supports for python 2.4 and 2.5
* Replace dependency: PIL -> Pillow
History
=======
0.9.0 (2013-10-05)
------------------
* Support python 3.2 and 3.3 (thanks to @masayuko)
* Drop supports for python 2.4 and 2.5
* Replace dependency: PIL -> Pillow
Produce Encapsulated PostScript Files (EPS/EPSF) from a one-
page PostScript document, or any PostScript document. A correct
Bounding Box is calculated for the EPS files and some
PostScript command sequences that can produce errorneous
results on printers are filtered. The input is cropped to
include just the image contained in the PostScript file. The
EPS files can then be included into TeX documents. Other
programs like ps2epsi (a script distributed with ghostscript)
don't always calculate the correct bounding box (because the
values are put on the PostScript stack which may get corrupted
by bad PostScript code) or they round it off, resulting in
clipping the image. Therefore ps2eps uses a resolution of 144
dpi to get the correct bounding box.
changes:
Copy and paste color adjustments between photos
Highlights detail adjustment
YouTube plugin now uses OAuth / OpenID
Videos in Missing Files now re-import properly
Improvements when thumbnailing videos
Numerous bug fixes
changes:
* Make code compatible with python3
* Separation of python module and resources in source package
(packagers may need to consult INSTALL)
* Move to v2 of PyQt API
* Remove deprecated numpy API from helpers module
* Allow FITS dataset names to be blank if prefix/suffix are not
* New ast-based code security checker
* Picker uses 1-based index for consistency
* Allow non-text datasets to be used for labels
* Add number->text conversion dataset plugin
* Add binning dataset plugin
* Allow more significant figures in float values
* Intelligent choice of significant figures when interactively
changing axis range
* Decrease minimum range of axis
* Add notes setting to document, pages and graphs
* Add option to disable scaling of marker border with point scaling
* Implement label at-minimum/at-maximum for ternary plot
* Add border and background fill settings for text label widget
* Enable FITS support with astropy
+bugfixes
Changes:
* New command line argument --(no)safer which allows setting
-dNOSAFER instead of -dSAFER (only for non-restricted).
* New command line argument --pdfsettings for
Ghostscript's -dPDFSETTINGS.
* New command line argument --(no)quiet.
* New command line argument --device for specifying a differnt
Ghostscript device (limited set of devices for restricted mode).
* New command line arguments --gsopts and --gsopt for adding
Ghostscript options.
* Full support of ghostscript's option -r, DPIxDPI added.
* Support for DOS EPS binary files (TN 5002) added.
* Removes PJL commands at start of file.
* explain option naming conventions (= defaults for Getopt::Long).
* use /usr/bin/env, since Ruby has apparently required #! for years,
and we rely on it for our other scripts, so why not.
* uselessly placate -w. Debian bug 672281.
Core:
- Set manifest as Windows 8 compatible
GUI:
- Indicate if a file was exported in the Quit dialog
- Add shortcuts and hint labels to the close and quit dialogs
that make closing and quitting easier and more consistent
- Rename the File->Export menu labels to match Save/Save as
- Fix keyboard shortcuts on OSX Mavericks
- Don't open lots of progress popups when opening many files
- Correctly restore the hidden state of docks in single window mode
Libgimp:
- Fix exporting an image consisting of a single layer group
- Don't attempt to pick transparent colors
Plug-ins:
- Fix crash in LCMS plugin if RGB profile was missing
General:
- Fix compile on NetBSD (missing -lexecinfo)
- Bug fixes
- Translation updates
2.14 Fri Nov 9 16:06:00 2012
- No code changes.
- Patch t/foo.t to not assume text appears on specific lines of the output test files.
2.13 Fri Nov 9 08:27:00 2012
- No code changes.
- Re-package distro because users get errors during testing. See RT#80709.
Since I had this same error during my testing, I assume the uploaded version contains un-patched
code. The errors are not in GraphViz, they are in the test code which has hard-coded line numbers
where it looks for strings in the output. The output has been reformatted recently, and no longer
matches those assumptions. See t/foo.t for details. Note: I did not write those tests :-).
2.12 Thu Nov 8 12:38:00 2012
- No code changes.
- For pre-reqs such as strict, warnings, etc, which ship with Perl, set the version # to 0.
Reported as RT#80663 by Father Chrysostomos for Tree::DAG_Node.
2.11 Tue Sep 18 08:22:00 2012
- Add VDX as an output format.
2.10 Mon Mar 26 10:11:00 2012
- Accept a patch kindly supplied by Alexander Kriegisch, to change handling of the rankdir attribute.
The valid values are BT, LR, RL or TB, or their lower-case equivalents.
Previously, only a true value was accepted, which meant LR. Now, any value not in that list defaults to LR.
Files changed: README, CHANGES, Changelog.ini, GraphViz.pm, GraphViz/Regex.pm and simple.t.
- Patch this file to replace BST with GMT, since both DateTime::Format::HTTP and DateTime::Format::Strptime
fail to recognize BST.
These modules are used by Module::Metadata::Changes to transform this file into Changelog.ini.
2.09 Thu Dec 15 11:08:00 2011
- Adopt Flavio Poletti's suggestion of trying to pipe to dot, in Build.PL/Makefile.PL, rather than using File::Which,
to see if dot (Graphviz) is installed. This (hopefully) solves the problem of using File::Which on systems where it is
not installed, before Build.PL/Makefile.PL has a chance to tell the user that File::Which is required. See: RT#73077.
2.08 Tue Nov 1 10:55:00 2011
- Wind back pre-reqs for various modules to match what was shipped with Perl V 5.8.1.
Many thanx to Brian Cassidy for the error report: https://rt.cpan.org/Ticket/Display.html?id=72068.
2.07 Sun Oct 30 16:08:00 2011
- Rewrite Build.PL and Makefile.PL to try loading File::Which rather than assuming it is installed.
This avoids the chicken-and-egg problem whereby these 2 programs need File::Which::which to find 'dot'.
Many thanx to Richard Clamp for the error report: https://rt.cpan.org/Public/Bug/Display.html?id=71971.
2.06 Tue Oct 25 08:09:00 2011
- Add File::Which to the pre-reqs in Build.PL and Makefile.PL.
2.05 Thu Oct 20 10:52:00 2011
- Add 'Deprecated. See GraphViz2' to the docs.
- Add Build.PL.
- Add ability to set ORIENTATION. Thanx to Christian Lackas for the patch. See RT#71787.
- Add Changelog.ini.
- Add META.json, MYMETA.json and MYMETA.yml.
- Add MANIFEST.SKIP.
- Ensure all modules contain a version number.
- Update the docs regarding the list of modules shipped in this distro.
- Remove examples/remote.pl because GraphViz::Remote is no longer shipped.
- Clean up examples/clusters2.pl.
- Clean up Makefile.PL.
* fixed estimated number of images
* only hide cursor when fullscreen
* default to best available video depth.
* handle missing or bad files better
* experimental "scaling" keys added
* fixed off by one bug in zooming
* Check for NULL return from malloc().
* Undefine CLOCKS_PER_SECOND "1000" found in some version of MinGW.
* Replaced most "atoi(argv[++i])" with "pngcrush_get_long" which does
"BUMP_I; strtol(argv[i],ptr,10)" and added pngcrush_check_long macro
to detect malformed or missing parameters (debian bug 716149).
* Added global_things_have_changed=1 when reading -bkgd.
* The "-bit_depth N" option did not work reliably and has been removed.
Version 1.6.7beta01 [September 30, 2013]
Revised unknown chunk code to correct several bugs in the NO_SAVE_/NO_WRITE
combination
Allow HANDLE_AS_UNKNOWN to work when other options are configured off. Also
fixed the pngminim makefiles to work when $(MAKEFLAGS) contains stuff
which terminates the make options (as by default in recent versions of
Gentoo).
Avoid up-cast warnings in pngvalid.c. On ARM the alignment requirements of
png_modifier are greater than that of png_store and as a consequence
compilation of pngvalid.c results in a warning about increased alignment
requirements because of the bare cast to (png_modifier*). The code is safe,
because the pointer is known to point to a stack allocated png_modifier,
but this change avoids the warning.
Fixed default behavior of ARM_NEON_API. If the ARM NEON API option was
compiled without the CHECK option it defaulted to on, not off.
Check user callback behavior in pngunknown.c. Previous versions compiled
if SAVE_UNKNOWN was not available but did nothing since the callback
was never implemented.
Merged pngunknown.c with 1.7 version and back ported 1.7 improvements/fixes
Version 1.6.7beta02 [October 12, 2013]
Made changes for compatibility with automake 1.14:
1) Added the 'compile' program to the list of programs that must be cleaned
in autogen.sh
2) Added 'subdir-objects' which causes .c files in sub-directories to be
compiled such that the corresponding .o files are also in the
sub-directory. This is because automake 1.14 warns that the
current behavior of compiling to the top level directory may be removed
in the future.
3) Updated dependencies on pnglibconf.h to match the new .o locations and
added all the files in contrib/libtests and contrib/tools that depend
on pnglibconf.h
4) Added 'BUILD_SOURCES = pnglibconf.h'; this is the automake recommended
way of handling the dependencies of sources that are machine generated;
unfortunately it only works if the user does 'make all' or 'make check',
so the dependencies (3) are still required.
Cleaned up (char*) casts of zlib messages. The latest version of the Intel C
compiler complains about casting a string literal as (char*), so copied the
treatment of z_const from the library code into pngfix.c
Simplified error message code in pngunknown. The simplification has the
useful side effect of avoiding a bogus warning generated by the latest
version of the Intel C compiler (it objects to
condition ? string-literal : string-literal).
Make autogen.sh work with automake 1.13 as well as 1.14. Do this by always
removing the 1.14 'compile' script but never checking for it.
Version 1.6.7beta03 [October 19, 2013]
Added ARMv8 support (James Yu <james.yu at linaro.org>). Added file
arm/filter_neon_intrinsics.c; enable with -mfpu=neon.
Revised pngvalid to generate size images with as many filters as it can
manage, limited by the number of rows.
Cleaned up ARM NEON compilation handling. The tests are now in pngpriv.h
and detect the broken GCC compilers.
Version 1.6.7beta04 [October 26, 2013]
Allow clang derived from older GCC versions to use ARM intrinsics. This
causes all clang builds that use -mfpu=neon to use the intrinsics code,
not the assembler code. This has only been tested on iOS 7. It may be
necessary to exclude some earlier clang versions but this seems unlikely.
Changed NEON implementation selection mechanism. This allows assembler
or intrinsics to be turned on at compile time during the build by defining
PNG_ARM_NEON_IMPLEMENTATION to the correct value (2 or 1). This macro
is undefined by default and the build type is selected in pngpriv.h.
Version 1.6.7rc01 [November 2, 2013]
No changes.
Version 1.6.7rc02 [November 7, 2013]
Fixed #include in filter_neon_intrinsics.c and ctype macros. The ctype char
checking macros take an unsigned char argument, not a signed char.
Version 1.6.7 [November 14, 2013]
Technically this change should bump PKGREVISION (as it changes the
binary package ever so slightly for platforms where the ceill() didn't
cause a build failure) but I'm going to let it slide.
digiKam 3.5.0 - Release date: 2013-09-29
NEW FEATURES:
General : new RAW cameras supported : Richon GR, Panasonic LF1,
Canon EOS 70D, Sony RX100II, Sony RX1R, Olympus E-P5.
BUGFIXES FROM KDE BUGZILLA (alias B.K.O | http://bugs.kde.org):
001 ==> Removing tags limited to 250 selected pictures.
002 ==> Kipi-plugins cannot be deselected or digiKam not reading digikamrc.
003 ==> undo/redo does not take effect in the image.
004 ==> Feature request: Setting in digiKam to only detect faces, not
trying to recognize them automatically.
005 ==> digiLam crashed when validating face tag with button.
Core:
- Make sure indexed images always have a colormap
- Fix language selection via preferences on Windows
- Don't crash on setting a large text size
GUI:
- Keep the same image active when switching between MWM and SWM
- Make sure all dockables are properly resizable (particularly shrinkable)
- Add links to jump directly to Save/Export from the Export/Save
file extension warning dialogs
Libgimp:
- Fix GimpPickButton on OSX
Plug-ins:
- Properly document plug-in-autocrop-layer's PDB interface
- Fix importing of indexed BMPs
General:
- Fix lots of places to use GIO to get proper file sizes and times on windows
- Add an AppData file for GIMP
- Backport lcms2 support from master, because lcms1 is not getting
bug fixes any longer
- Lots of bug fixes
- Lots of translation updates
At configure time, guile --version is parsed to see if guile is new
enough, and our guile 1.8 is new enough. But the sed expression,
documented to use BREs, wrongly uses \+ which is a modern RE
construct. gsed interprets \+, and is hereby awarded a "test =="
badge of shame. To fix this, change \+ to *.
* major improvements to the OpenCL infrastructure.
* new OpenCL accelerated algorithms (function image, blur, radial blur,
unsharp mask, resize, contrast, equalize, despeckle).
* added a new checkbox to enable OpenCL in the configure program.
* NEW Ctrl-Break interrupts fitting run in wgnuplot
* CHANGE treat empty fields in a csv file as "missing" rather than "bad"
* CHANGE allow reference to more than one column header in 'using' or 'title'
* CHANGE install-info is no longer a default "make install" target
* CHANGE if a polar plot is autoscaled, try to place the origin at the center
* FIX svg and canvas terminal mousing of inverted axis coordinates
* FIX emf failed to initialize font correctly on some systems
* FIX timedata columns can now be referred to via column(N) and column("HEAD")
* FIX qt terminal toggling of enhanced text elements in plot with labels
* FIX color/pattern generated for key entries of columnstacked histograms
* FIX hitting ^C twice forces temination of wxt session hung by lost X-server
* FIX win terminal failed to properly adjust plot border after window resize
* FIX several conditions in which macros were not expanded during command input
* FIX promote a string containing only digits to INTGR rather than CMPLX
* FIX 'set grid front' caused failure to initialize location of axis zero point
* FIX very poor precision in mouse coords reported by x11 in -persist mode
* FIX parsing of $# (the number of arguments in a "call"). It's not a comment!
* FIX memory leak of cropped images using pngcairo terminal
* FIX "lc variable" now iterates over linetype colors (not styles) as documented
* FIX rtics were sometimes drawn with length 0
** Bug Fixes
- [Enblend and Enfuse] Fix a bug in the highlight-recovery that caused
Enfuse to bail out with the uncaught exception
"Minimizer1D::set_bracket: minimum not bracketed".
This addresses LaunchPad Bug 1214004.
- [Enfuse] Clean up seemingly random, bright-colored pixels that
sometimes show up when fusing images with high contrast and "large"
color profiles.
Changelog:
Release 1.2.2 (1 Oct 2013)
--------------------------
* New features:
* New oiiotool --siappend : append subimages of top two images on stack.
* Utilities: added Strutil::contains() and icontains().
* Fixes:
* Fixes in handling XMP & IPTC metadata.
* oiiotool --origin and --fullpixels did not correctly propagate their
changes to the output images.
* oiiotool --colorconvert (and the underlying ImageBufAlgo::colorconvert)
could crash if given a color conversion recognized as a no-op.
* DPX output could crash when writing crop images.
* DPX input was not recognizing the proper image offset or originalsize.
* oiiotool --fit wasn't padding correctly or modifying offsets properly.
* Build fixes:
* Fix compiler error on MIPS platform.
* Add FIELD3D_HOME description to 'make help'
* Always use the HDF5 release libraries (for Field3D), not the debug ones.
Release 1.2.1 (5 Aug 2013)
---------------------------
* oiiotool: Fix memory leak when processing frame range.
* Docs improvement: full documentation of ImageBufAlgo.
* oiiotool --help now returns a success error code, not a failure.
* oiiotool: fix incorrect help message about --ociolook.
* oiiotool: Fix typo in "oiio:Colorspace" attribute name that interfered
with correct color space conversion in --colorconvert.
* Many fixes for compiler warnings on various platforms: fmath_test.cpp,
field3dinput.cpp, sysutil.cpp, argparse.cpp, oiiotool.cpp.
* Fixes problems on little-endian architecture with texture3d.cpp.
* Fix compilation problems on architectures with gcc, but no 'pause'
instruction.
* Fix build search path for correctly finding libopenjpeg 1.5.
* Work around bug in older MSVC versions wherein Filesystem::open needed
to explicitly seek to the beginning of a file.
* Build fixes for FreeBSD.
* Fix testsuite/oiiotool on Windows -- windows shell doesn't expand wildcards.
Release 1.2 (8 July 2013)
-------------------------
Major new features and improvements:
* New oiiotool commands:
--swap Exchanges the top two items on the image stack.
--fit Resize image to fit into a given resolution (keeping aspect).
--ch Select/cull/reorder/add channels within an image.
--chappend Merge two images by appending their color channels.
--chnames Rename some or all of the color channels in an image.
--zover Depth compositing
--cadd Add constant per-channel values to all pixels
--cmul Multiply an imge by a scalar or per-channel constant.
--fillholes Smoothly interpolate for hole filling.
--resample Similar to --resize, but just uses closest pixel lookup.
--clamp Clamp pixel values
--rangeexpand Expand range for certain HDR processing
--rangecompress Compress range for certain HDR processing
--unpremult Divide colors by alpha (un-premultiply).
--premult Multiply colors by alpha.
--kernel Make a convolution kernel using a filter name.
--convolve Convolve two images.
--blur Blur an image.
--unsharp Sharpen an image using an unsharp mask.
--paste Paste one image on another.
--mosaic Create a rectilinear image mosaic.
--transpose Transpose an image (flip along the diagonal axis)
--chsum Sum all channels in each pixel
--cshift Circular shift an image pixels
--fft --ifft Forward and inverse Fourier transform
--colorcount Counts how many pixels are one of a list of colors.
--rangecheck Counts how many pixels fall outside the given range.
--ociolook Apply OpenColorIO "looks"
--autotrim Shrinks pixel data window upon output to trim black edges.
* oiiotool can loop over entire numeric frame ranges by specifying
wildcard filenames such as "foo.#.tif" or "bar.1-10#.exr".
* oiiotool --frames and --framepadding give more explicit control over
frame range wildcards.
* Significant performance improvements when reading and writing images
using the ImageBuf::read and ImageCache::get_pixels interfaces, and in
some cases also when using regular ImageInput. This also translates
to improved performance and memory use for oiiotool and maketx.
* At least doubled the performance of maketx for large images when run
on multi-core machines.
* Significant performance improvements when using ImageBuf::Iterator
or ConstIterator to traverse the pixels in an ImageBuf, and the iterators
now support "wrap" modes (black, clamp, periodic, mirror).
* maketx --hicomp does "highlight compensation" by compressing the
HDR value range prior to inter-MIP resizes, then re-expanding the range.
* Field3D writer (it could read f3d files before, but not write them).
* idiff can now compare that are not the same size (treating pixels
beyond the pixel data window is being 0 valued).
* maketx --lightprobe turns a "lightprobe" iamge into a latlong environment
map.
* Significant improvements and fixes to EXIF, IPTC, and XMP metadata
reading and writing.
* Significant thread scalability improvements to TextureSystem and
ImageCache.
* Huge overhaul of functionality, style, and performance of the
entire ImageBufAlgo set of functions (see the "Public API changes"
section below, and the imagebufalgo.h file for details).
Public API changes:
* ImageOutput semantics change: If the spec passed to open() has
spec.format set fo UNKNOWN, then select a default data format for the
output file that is "most likely to be able to be read" and/or "most
typical for files of that format in the wild." Also,
ImageOutput::open() will never fail because a requested data format is
unavailable; if the requested format is not supported, a reasonable
alternate will always be chosen.
* ImageBuf has been changed to a "PIMPL" idiom, wherein all the
internals are no longer exposed in the public API. This allows us to
change ImageBuf internals in the future without breaking API or link
compatibility (and thus giving us more freedom to backport important
improvements to prior releases).
* Overhaul of ImageBufAlgo functions: they all take an ROI parameter;
use the DISPATCH macros to make them work with all pixel data types
where practical (previously, many supported float only); use Iterator
rather than getpixel/setpixel, leading to huge speed improvements;
multithread when operating on enough pixels, leading to huge speed
improvements; work on 3D (volume) images where applicable; always
gracefully handle uninitialized dest image or undefined ROI.
* New ImageBufAlgo functions: channels(), channel_append(), mul(),
paste(), zover(), add() and mul() varieties that that add/multiply a
constant amount to all pixels, fillholes_pp(), resample(), clamp(),
rangecompress(), rangeexpand(), make_kernel(), unsharp_mask(),
transpose(), channel_sum(), circular_shift(), fft(), ifft(),
color_count(), color_range_check(), nonzero_region().
[look in imagebufalgo.h for documentation.]
* ImageBufAlgo::make_texture() allows you to do the same thing that
maketx does, but from inside an application and without launching a
shell invocation of maketx. Two varieties exist: one that takes a
filename and reads from disk, another that takes an ImageBuf already
in memory.
* ImageBuf Iterator/ConstIterator now take "wrap" mode parameters that
allow out-of-range iterators to be able to retrieve valid data. Supported
wrap modes include black, clamp, periodic, and mirror. This simplifies
a lot of algorithms using IB::Iterator, they can now be written to
rely on wrap behavior rather than being cluttered with checks for
"if (it.exits())" clauses.
* ImageBufAlgo::computePixelHashSHA1 has been refactored to take ROI,
a block size, and thread count, and thus can be parallelized with threads.
The block size means that rather than computing a single SHA-1 for all
the pixels, it computes separate (parallel) SHA-1 for each group of
blocksize scanlines, then returns the SHA-1 of all the individual SHA-1
hashed blocks. This is just as strong a hash as before, thought the value
is different than doing the whole thing at once, but by breaking it into
blocks the computation can be multithreaded.
* ImageBuf::swap() makes it easy to swap two ImageBuf's.
* ImageSpec::get_channelformats is now const (and always should have been).
Fixes, minor enhancements, and performance improvements:
* TextureSystem improvements:
* Make sure "black" wrap wins out over "fill" value when they conflict
(looking up an out-of-range channel beyond the pixel data window).
* "mirror" wrap mode was slightly incorrect and has been fixed.
* oiiotool improvements:
* oiiotool -v breaks down timing by individual function.
* oiiotool has been sped up by forcing read of the whole image up front
for reasonably-sized files (instead of relying on ImageCache).
* oiiotool does not write output images if fatal errors have occurred.
* oiiotool --diff: Better error handling, better error printing, and
now it can compare images with differing data windows or channel
numbers ("missing" channels or pixels are presumed to be 0 for the
purposes of comparing).
* oiiotool --resize (and --fit): properly handle the case of resizing
to the same size as the original image.
* oiiotool -d CHAN=TYPE can set the output for just one channel.
* ImageBufAlgo improvements:
* Internal overhaul of IBA::resize to greatly speed it up.
* Improve IBA::resize to handle the image edge better -- instead of
clamping, just don't consider nonexistant pixels.
* More careful selection of filter when resizing (IBA::resize, oiiotool
--resize and --fit, and maketx).
* Fix IBA::paste() error when the foreground image runs off the end of
the background image.
* Bug fix when computing SHA-1 hash of 0-sized images.
* Image format support improvements:
* Bug fix where some format readers (PNM, SGI, and IFF) would leave the
file handle opened if the ImageInput was destroyed without calling
close() first. Now we guarantee that destroying the II always causes
the file to close().
* DPX: output allocation bug fix; properly set pixel aspect ratio for
DPX write.
* IFF: bug fix for endian swap for IFF file input.
* JPEG2000: fix warnings, make sure event manager transfer object
remains valid.
* OpenEXR: when reading, was botching the ordering of per-channel data
formats.
* SGI write: bug fix for the case of 15 bpp RLE encoding, was
double-swapping bytes.
* Targa: more robust check for presence of alpha channels; bug fix where
R and B channels were reversed for certain kinds of palette images.
* TIFF: Store the orientation flag properly when outputting a TIFF file.
* maketx improvements:
* maketx --chnames allows you to rename the channels when you create a
texture.
* maketx bug fixes: incorrect weighting when resizing MIP levels for
latlong environment map images that could make visible artifacts
on some intermediate MIP levels.
* encode_exif() didn't copy the right number of bytes.
* Python bindings: ImageSpec extra_attribs now properly responds to
iterator calls.
* Fix bug in sRGB -> linear conversion.
* iv: make pixelview display coordinates & color even when outside the
data window.
Build/test system improvements:
* Many fixes to improve builds and eliminate warnings on Windows and MinGW.
* Fix missing InterlockedExchangeAdd64 for Windows XP.
* New make/cmake boags: OIIO_BUILD_TOOLS=0 will exclude building of the
command line tools (just build libraries), OIIO_BUILD_TESTS=0 will
exclude building of unit test binaries.
* Improved matching of testsuite reference images on different platforms.
* Lots of fixes to compiler warnings on newer gcc and clang releases.
* Unit tests for Timer class.
* libOpenImageio/imagespeed_test benchmarks various methods of reading
and writing files and iterating image pixels (to help us know what to
optimize).
* If OpenSSL is available at build time, OIIO will use its SHA-1
implementation instead of our own (theirs is faster). We still fall
back on ours if OpenSSL is not available or when OIIO is built with
USE_OPENSSL=0.
* Allow default the shared library suffix to be overridden with the
CMake variable OVERRIDE_SHARED_LIBRARY_SUFFIX.
* Eliminated all uses of the custom DEBUG symbol, and instead use the
more standard idiom "#ifndef NDEBUG".
* Compatibility fixes for Python3.
* MSVC 2008: Prevent a redefinition error when using boost::shared_ptr.
* Fixes for compatibility with libtiff 4.0.
* Fixes for MSVC debug mode having out-of-bound exceptions.
* Fixes for libjpeg 9.x.
* Compile to treat warnings as errors (you can disable this with
STOP_ON_WARNING=0).
* New filter: "sharp-gaussian".
* Fix various Windows build errors.
* Improvements to the build when finding IlmBase/OpenEXR.
* Various fixes to compile on ARM architecture.
* Fixes to compile on ESA/390 mainframe (!).
* testtex --threadtimes, --trials, --iters, --nodup, --wedge. These
are helpful in using testtext to benchmark the texture system.
* Improvements to make more tests work properly on Windows.
Developer goodies:
* Improved ASSERT and DASSERT macros to not generate warning for certain
debug compiles; key their debug behavior by the absence of the standard
NDEBUG idiom rather than presence of a custom DEBUG symbol; rename the
message variants ASSERT_MSG and DASSERT_MSG.
* Change the default for Sysutil::memory_used to report resident memory
rather than virtual process size.
* Multithread/parallel version of utility function convert_image().
* imagebufalgo.h improvements and expansion of the various DISPATCH_*
macros.
* New Filesystem utilities: parent_path(), get_directory_entries().
* New Strutil utilities: extract_from_list_string
* spinlock tweaks make it faster than TBB's spin locks!
* By default, we no longer build or use TBB (it's considered deprecated,
but in 1.2 can still be turned on with USE_TBB=1).
* In fmath.h, added definitions for safe_inversesqrt, safelog, safe_log2,
safe_log10, safe_logb.
* In typedesc.h, added TypeDesc::tostring() function.
* unordered_map_concurrent.h contains a template for a thread-safe
unordered_map that is very efficient even for large number of threads
simultaneously accessing it.
* Documentation: Finally, a chapter in the PDF docs that fully describes
the ImageBuf class.
Release 1.1.13 (24 Jun 2013)
----------------------------
* Texture: make sure wrap mode "black" wins over "fill" value when they
conflict.
Release 1.1.12 (20 Jun 2013)
----------------------------
* Fix oiiotool '#' wildcard, was broken on Windows.
* Fix an overflow problem that plagued 'maketx' when running on input
larger than 32k x 32k (among other possible failures).
Release 1.1.11 (29 May 2013)
----------------------------
* IFF input: bug in endian swap of 16 bit IFF files.
* oiiotool: fix a minor bug where tiled files were output inappropriately.
(Had been patched in master some time ago.)
* fmath.h additions: safe_inversesqrt, safe_log, safe_log2, safe_log10,
safe_logb. These are versions that clamp their inputs so that they
can't throw exceptions or return Inf or NaN.
* Fix to not incorrectly print ImageCache stats for certain broken files.
Release 1.1.10 (13 Apr 2013)
----------------------------
* IBA::fillholes() and oiiotool --fillholes can smoothly fill in alpha
holes with nearby colors. Great for extrapolating the empty areas of
texture atlas images so that filtered texture lookups pull in a plausible
color at part edges.
* IBA::clamp and oiiotool --clamp clamp pixel values to a scalar or
per-channel min and/or max, or clamp alpha to [0,1].
* IBA::rangecompress()/rangeexpand(), and oiiotool --rangecompress /
--rangeexpand compress the excess >1 values of HDR images to a log
scale (leaving the <= 1 part linear), and re-expand to the usual
linear scale. This is very helpful to reduce ringing artifacts that
can happen when an HDR image is resized with a good filter with negative
lobes (such as lanczos3), by doing a range compression, then the resize,
then range expansion. It's not mathematically correct and loses energy,
but it often makes a much more pleasing result.
* maketx --hicomp does highlight compression -- automatically doing a
range compress before each high-quality resize step, and then a
range expansion and clamp-to-zero (squash negative pixels) after
each resize.
* DPX - when writing DPX files, properly set the pixel aspect ratio.
Release 1.1.9 (2 Apr 2013)
--------------------------
* IBA::resize and oiiotool --resize/--fit: Bug fixes to resize filter
size selection fix artifacts wherein extreme zooms could end up with
black stripes in places where the filters fell entirely between samples.
* oiiotool --fit: fix subtle bugs with aspect ratio preservation for
images with differing data and display windows; and allow "filter=..."
to override the default filter used for fit.
* Resize improvement: fix potential artifacts at the image edges resulting
from odd clamping behavior.
* Even more frame range wildcard flexibility with oiiotool --frames and
--framepadding options.
* oiiotool --resize and --fit (and the underlying IBA::resize()) have been
sped up significantly and are now also multithreaded.
Release 1.1.8 (15 Mar 2013)
---------------------------
* oiiotool --chappend (and ImageBufAlgo::channel_append() underneath) allow
you to take two files and concatenate their color channels.
* oiiotool --chnames allows you to rename some or all of a file's color
channels.
* oiiotool can loop over entire frame ranges by specifying wildcard
filenames such as "foo.#.tif" or "bar.1-10#.exr".
* Cmake: OVERRIDE_SHARED_LIBRARY_SUFFIX allows the shared library suffix
to be overridden (e.g., if you need to force .so names on OSX rather
than the usual default of .dylib).
Now depends on lcms2 instead of lcms, and the major version was
bumped (recursive bump following next).
2.0.1 (19.01.2013)
---------------------------
[szukw000@arcor.de] There has been a change in JPEG version 9:
added some code in libmng_types.h before
#include <jpeglib.h>
2.0.0 (dd.mm.2012)
---------------------------
Allows lcms1/lcms2:
./configure --with-lcms2
cmake -DWITH_LCMS2:bool=on
Cnf. the sample files
'Configure.libmng'
and 'build-mng-cmake.sh'
and 'cmake-compile.bat' resp. 'clean.bat'
szukw000@arcor.de
== 1.4.2 / 2013-06-30
Maintenance:
* Modernized Hoe installation of Color, removing some dependencies.
* Switched to Minitest.
* Turned on Travis CI.
* Started using Code Climate.
* Small code formatting cleanup that touched pretty much every file.
libpng-1.6.5 has been released, to remove two stray lines in arm/arm_init.c
that caused libpng to fail to compile when ARM support is enabled. This
problem was apparently due to a cut-and-paste error of some sort on my part.
Changes since the last public release (1.6.3):
Added information about png_set_options() to the manual.
Delay calling png_init_filter_functions() until a row with nonzero filter
is found.
Fixed inconsistent conditional compilation of png_chunk_unknown_handling()
prototype, definition, and usage. Made it depend on
PNG_HANDLE_AS_UNKNOWN_SUPPORTED everywhere.