==========================
    P. R. I. C. E.
==========================



             written by Riccardo Mottola
             rm@gnu.org


Home on Sourceforge: http://price.sourceforge.net
                     http://sourceforge.net/projects/price/
Document Revision: 7 January 2015
Current Version:   1.3.0

WHAT IS IT ?
------------

PRICE, which stands for Precision Raster Image Convolution Engine, aims to be a high quality
Image filtering, enhancing and manipulation program. It is written in Objective-C and AppKit, thus designed for Cocoa and GNUstep.


TO DO
-----
- numeric input checking for convolution fields
- Implement color median filter for luma only ?

? Filter Paramteres need to be autoreleased ?
? Undo should reset correct view scale
? bilinear scaling seems to add a black border sometimes (50%) but nearest neighbour not


NOTES
-----
- development and testing is currently done on MacOS-X 10.3, 10.4 and a G3, G4;
  10.6 on i386, please report problems on other versions.
  10.1/10.2 are now rarely tested but appear to continue to work, will probably deprecated in the future.
- GNUstep versions have been tested by me on Solaris, Linux, MkLinux-ppc, OpenBSD, FreeBSD, NetBSD, MinGW on different CPU's
  (x86-32, x86-64, SPARC, PPC, MIPS and older versions on 68k)

HISTORY
-------

-- what's new in 1.3.0 --
(7 January 2015)
+ Scaling, cropping, Greyscale, Brigthness+Contrast, Curves, Median, Equalization, Convolution now support/preserve alpha-channel
+ Edge tracing ignores alpha-channel instead of refusing to filter
+ Curves now support direct manipulation of splines
+ Curves now supports better reset and other minor fixes
+ Crop border add bug-fixes, Crop supports any byte depth
+ Crop finally updated to PRFilterController architecture, thus it gains preview
+ Preview window supports scaling
+ Grayscale and inversion support 16 bit images
+ bug fixes for imags which are byte-aligned and have more bytesPerPixel than samplesPerPixel
+ on MacOS, handle through initial conversion alpha-first images (e.g. iPhone images)
+ Filter parameters checked before sending self-update during live preview, helps for a more responsive interface
+ enhanced support for 10.6, including UTIs

-- what's new in 1.2.0 --
(25 December 2012)
+ support for JPEG as save format
+ In curves the transformed histogram is now drawn specular on top and not left
+ various bug fixes (e.g. Erratic histogram calculation, Curves Reset)

-- what's new in 1.1.0 --
(23 April 2012)
+ Bilinear scaling
+ bug fixes in custom edge tracer
+ filters now close preview on Cancel
+ Curves level correction
+ GNUstep convolve matrix now acts on end-editing and not on enter, fixing year old limitation!

-- what's new in 1.0.0 --
(08 August 2010)
+ Preview for filters
+ improvements and cleanup in the filter architecture

-- what's new in 0.9.1 --
(31 December 2009)
+ cleaned and fixed notifications and outlets of the window controller, which fixes a crash on GNUstep. Mac wasn't affected.

-- what's new in 0.9.0
(25 December 2009)
+ fixes to build on current glibc and current compilers with optimizations enabled.
+ new, unified, PRFilter architecture which simplifies all the controllers and unifies parameter passing with an Array
+ all PRTransform actions (rotations, flips, transposition) now support both color and grayscale and preserve alpha channel
+ complete update of all filters to support Cocoa >= 10.4 which pads the NSBitmapImageRep rows
+ faster access to bitmap data by using PRImage instead of recreating the bitmap image rep. Used now pervasively, for example in the custom edge tracer: much faster

-- what's new in 0.8.3
(24 August 2008)
+ performance and memory usage improvments
+ license is now GPL v2 or later

-- what's new in 0.8.2
(20 February 2008)
+ selectable method for greyscale conversion (rgb average and luminance of YCrCb)
+ image inversion for both color and greyscale images
+ in the GNUstep version an interface was corrected since it was corrupted and caused crashes

-- what's new in 0.8.1
(5 November 2006)
+ equalization on the Y coordinate of the YCrCb colorspace

-- what's new in 0.8.0
(29 April 2006)
+ the image representation is now a PRImage class which allows to access some fieds without fetching the TIFF image representation. This yields some speed up in some stages, like when fetching the original dimensions.
+ the 5x5 convolution engine now works in color mode (separate RGB channels) too
+ a small fix for the convolve progress panel that wasn't updating properly
+ median filter has support for color filtering! (separate channel in RGB)
+ implemented separable linear scaling
+ implemented copy & paste
+ faster FFT

-- what's new in 0.7.0
(26 June 2006)
+ fixed a memory release bug that occoured when greyscale images needed to be converted in colorspace on load
+ new interface for the "zoom" view of an image based on a pop-up button
+ a small info line at the bottom of the image
+ fixed zoom scale problem when doing undo/redo (it did always reset to 100%)

-- what's new in 0.6.1
(10 June 2005)
+ automatic window scaling on open
+ implemented a preference panel
+ an Icon, finally! There are two versions of it, one for Macos-X and one for GNUstep.

-- what's new in 0.6.0
(11 April 2005)
+ Brightness and Contrast adjustment
+ histogram fixes

-- what's new in 0.5
(02 March 2005)
+ Scale image added
+ Crop image added
+ undo aspect ratio update fixed
+ many small tweaks in the UI (redesigned some panels, rearranged and relabeled those ugly Ok buttons)

-- what's new in 0.4.1
(19 January 2005)
+ progress display for several filters (low and high pass, convolve, median, custom edge tracer)
+ Undo fundamentals implemented, one level of image undo is held!
+ Revert to saved works finally (thanks to the undo and some small fixes)
+ fixed refresh of transpose, rotate90 and rotate270 

-- what's new in 0.4.0
+ memory managment clean up (and some leak fixes)
+ automatic conversion to grayscale for many filters if the image was in color
+ further work in Custom edge tracer, algorithms now more complete and a third image can be used
+ improved zero corssing / non zero crossing for the edge tracer(s)

-- what's new in 0.3.0
+ fixed a bug in the transposition of color images
+ fixed a bug in the slider of the GNUstep Median filter interface
+ added image rotation of 90/180/70 degrees
+ added vertical and horizontal image flipping
+ fixed some naming in the panel titles

-- what's new in 0.2.9
+ separate RGB color image equalization implemented
+ colored display of Histogram and cumulative Hitogram
+ memory deallocation fixes
+ implemented zero-cross display for laplacian filters
+ implemented customizable median filter (different forms and size)
+ implemented the basis for a more customizable edge tracer
+ fixed a bug in the DFTHighPass interface on GNUstep

-- what's new in 0.2.8 --
+ NSImageView works now in gnustep (no more clipping)
+ edge tracing is implemented (with selectable filters)
+ fixed a weak comparison for color spaces in MyDocument.m and included the check of both Calibrated and Device color space so it works more reliably across different platforms.

-- what's new in 0.2.7 --
+ histogram and cumulative histogram display
+ fixed equalization, but improvment space remains.

-- what's new in 0.2.6 --
+ DFT low pass now uses a rised cosine for the transition improving the smoothness
+ the DFT low-pass controller now checks for the input range, also directly entering the numerical values works
+ rewrote pointer access in the Convolve 5x5 and did some clean up
+ auto-range for DFT based filters works now much, much better due to a careless bug I had left in

-- what's new in 0.2.5 --
+ FFT is now displayed shifted with the 0 in the center of the image
+ the DFT - inverse-DFT of the low and high-pass filters works now great without adding spurious lines. Now the actual filtering part remains to be done correctly.
+ several GNUstep bugs were solved
+ DFT based Low and High pass are now skectechd out and roughly functional

-- what's new in 0.2.4 --
(26 Oct 2003)
+ 2D FFT is now displayed in logarithmic scale, to ease visualization
+ Save works (TIFF output)

-- what's new in 0.2.3 --
(13 Oct 2003)
+ 2D FFT is now usable, although it serves only as display (since only the real part is displayed and it is auto-scaled). But it should work on non square and non-power-of-two image sizes too!
+ DFT filter at the first (useless) implementation, basically the image is transformed and back-transformed

-- what's new in 0.2.2 --
+ key order in the convolution matrix is now correct
+ white and black color spaces are now correctly recongnized, although I don't like my current conversion method.
+ great FFT progress

-- what's new in 0.2.1 --
(1 feb 2003)
+ manual entering of convolution finally works (and not only when closing and reopening the panel!)
+ "Auto Scale" correctly enables and disables manual controls, even on reopen.
+ convolution now works fine, it wraps and mirrors over the edges as it should

-- what's new in 0.2 --
(30 jan 2003)
+ grayscale conversion
+ first work on the convolution engine
+ first work on filter preference panels.

-- what's new in 0.1 --
(21 dic 2002)
+ first initial draft, first layouts



LIMITATIONS
-----------
- currently FFT and convolutions work only on grayscale images


LICENSE  and DISCLAIMER
-----------------------

PRICE  Copyright (C) 2002-2015 Riccardo Mottola

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the
Software Foundation, Inc.,
51 Franklin Street, Fifth Floor,
Boston, MA  02110-1301, USA.
