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



             written by Riccardo Mottola
             rmottola@users.sourceforge.net


Home on Sourceforge: http://price.sourceforge.net
                     http://sourceforge.net/projects/price/

Document Revision: 28 January 2005
Current Version:   0.4.2

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, so being designed for Cocoa and GNUstep, it should be portable to OpenSTEP (I hope so, currently I don't have the computers to do the porting).

KNOWN BUGS
----------
- on GNUstep only: The undo system was implelmented inside GNUstep only a few days ago. This also uncovered a bug in the NSImage code. So if Undo is not working for you or sometimes you get funky colors or your image totally disappears, please update your gnustep core (both -base and -gui)
- on GNUstep there was a bug in -gui library that makes the "zoom" slider work wrongly, since scaling down to 50% and up to 100% again doesn't give you the original image again, but you need to use 200% instead. This has been fixed, so if you experience this, update your gnustep-gui library
- on GNUstep the text fields (like in Convolve 5x5) need each to be confirmed by pressing enter. Switching a field is not enough.
- on GNUstep there may be problem with NSPopUpButtons (you need to select an item, even if it is the same as the default one). There could also be problems of disabled NSPopUpButton items, this hints on a too old GNUstep version (it was a bug that was discovered and fixed during PRICE development)

TO DO
-----
- Implement Luminosity equalization of color images.
- check for planar/striped images
- fix the scaling of color histograms
- Implement color median filter (luma / RGB ?) 

NOTES
-----
- development and testing is currently done on MacOS-X 10.2 and a G3, please report problems on other versions. 10.1 is tested and works.
- GNUstep versions have been tested by me on Solaris, Linux-hppa, Linux-ppc, Linux-x86, MkLinux-ppc, OpenBSD/sparc

HISTORY
-------

-- what's new in 0.4.2
- Scale image added
- Crop image added
- undo aspect ratio update fixed

-- 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 comaprison 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 03)
+ manual entering of convolution finally works (and not only when closign 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 03)
+ grayscale conversion
+ first work on the convolution engine
+ first work on filter preference panels.

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


COMPILATION
-----------
- the project is currently created and compiled with Apple's Project Builder or with ProjectCenter on GNUstep.


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


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

PRICE  Copyright (C) 2002-2003-2004 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.

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
Free Software Foundation, Inc.,
59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA

