P. R. I. C. E.
written by Riccardo Mottola
Home on Sourceforge: http://price.sourceforge.net
Document Revision: 23 April 2012
Current Version: 1.1.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, it should be portable to OpenSTEP (I hope so, currently I don't have the computers to do the porting).
- check for planar/striped images
- Implement color median filter for luma only ?
- Brightness and Contrast should preserve the alpha channel
- Convolution should preserve the alpha channel
- Scale should work and preserve the alpha channel
- Crop should work and preserve the alpha channel
- Median filter should preserve the alpha channel
- Equalization filter should preserve the alpha channel
- development and testing is currently done on MacOS-X 10.2, 10.3, 10.4 and a G3, G4, please report problems on other versions. 10.1 is now rarely tested but appears to continue to work.
- GNUstep versions have been tested by me on Solaris, Linux (x86, ppc, 68k), MkLinux-ppc, OpenBSD/sparc, FreeBSD, NetBSD
-- 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 mantrix 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
+ improvments 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
- currently FFT and convolutions work only on grayscale images
LICENSE and DISCLAIMER
PRICE Copyright (C) 2002-2011 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.