changed git call from https to git readonly
[atutor.git] / mods / photo_album / classes / phpThumb_1.7.2 / docs / phpthumb.changelog.txt
1 //////////////////////////////////////////////////////////////
2 ///  phpThumb() by James Heinrich <info@silisoftware.com>   //
3 //        available at http://phpthumb.sourceforge.net     ///
4 //////////////////////////////////////////////////////////////
5
6 ¤ = structure change or important new feature
7 * = less important new feature or change
8
9 v1.7.2 - June 22, 2006
10   ¤ [#1256693] Added $this->exif_raw_data which is returned
11     data from exif_read_data() on source image.
12     Requires PHP v4.2.0+  (thanks tebiØusers*sourceforge*net)
13   ¤ Added $this->outputImageData and RenderOutput() to allow
14     easy outputting of thumbnail data to a database or such.
15     Call RenderOutput() instead of RenderToFile() and then
16     access raw data in $this->outputImageData
17     (thanks r*cremerØswitch*nl)
18   ¤ Added 'crop' filter, which is applied after resizing (as
19     opposed to sx,sy,sw,sh which are before resizing)
20     (thanks scottØscottjehl*com)
21   * Enable creating new images with PATH_INFO style call
22     (thanks edenØinstyleit*com*au)
23   * Added warning message to encourage users not to use
24     full HTTP paths for "src" parameter
25   * Added fallback 'preg_quote' to phpthumb.functions.php in
26     case your PHP installation does not have preg_* functions
27     (thanks mortenØemeskay*dk)
28   * Added fallback 'imagesavealpha' if GD < v2.0.1
29     (thanks oliver*heegerØweb*de)
30   * Added fallback 'imagealphablending' if GD < v2.0.1
31     (thanks oliver*heegerØweb*de)
32   * Added 'nocache' parameter that suppresses writing to cache
33     file, but only if high_security_enabled is set
34     (thanks federicoØdonelleschi*com)
35   * Attempt to detect supported ImageMagick features
36     (thanks simonØjapancentre*com)
37   * Added temp dir detection to phpThumb.demo.check.php
38   * Added ImageMagick dir to phpThumb.demo.check.php
39   * Added ImageMagick features to phpThumb.demo.check.php
40   * Default (config_allow_src_above_docroot = true) when PHP
41     running in "cli" mode  (thanks flobeeØgmail*com)
42   * Bugfix: [#1470791] 'iar' not working properly with
43     ImageMagick  (thanks w1xØusers*sourceforge*net)
44   * Bugfix: [#1498564] illegal characters in cache filenames
45     (thanks carl-evertØusers*sourceforge*net)
46   * Bugfix: 'sx','sy','sw','sh','zc' cache parameters broken
47     (thanks federicoØdonelleschi*com)
48   * Bugfix: 'config_max_source_pixels' incorrectly handled
49     (thanks oliver*heegerØweb*de)
50   * Bugfix: 'aoe' not working properly
51     (thanks w1xØusers*sourceforge*net)
52   * Bugfix: setParameter() was broken for arrays
53   * Bugfix: setSourceFilename() wasn't setting 'src'
54   * Bugfix: suppress stat()-related file permission
55     notices  (thanks lanceØmainecoastdesign*com)
56   * Bugfix: image format now initialized during ErrorImage()
57   * Bugfix: domain matching now case-insensitive
58   * Bugfix: some versions of ImageMagick not detected
59     (thanks arvidØfys*ku*dk)
60   * Bugfix: sometimes no image returned in safe_mode
61     (thanks bkainersØgmail*com)
62   * Bugfix: 'far' not always handled correctly
63     (thanks matthew*newtonØrealworldweb*com)
64   * Bugfix: PATH_INFO method not working if no filters specified
65     (thanks jjimenezØpracticaldata*com)
66   * Bugfix: first (internal) call to ImageMagickVersion() failed
67     under Windows
68   * Bugfix: Images source-cropped AND resized with ImageMagick were
69     wrong size (cropped size, not resized size)
70     (thanks joao*saleiroØwebfuel*pt)
71   * Bugfix: stat() warnings in CleanUpCacheDirectory()
72     (thanks christianØhss-haage*de)
73   * Bugfix: $PHPTHUMB_DEFAULTS not working when no other processing
74     parameters specified  (thanks tbittnersØcox*net)
75
76
77 v1.7.1 - March 16, 2006
78   * /demo/phpThumb.demo.check.php now checks:
79     - server software
80     - local and master config values (with ini_get and
81       get_cfg_var respectively)  (thanks nEUTRonØgmx*tm)
82     - existance of assorted PHP functions and explains their
83       importance
84   * Bugfix: config_error_die_on_error now defaults to FALSE to
85     prevent object-mode errors dying in an error image
86     (thanks moshØtobt*de; riteshgupta1974Øgmail*com)
87   * Bugfix: setParameter() now handles array parameters (such
88     as 'fltr') by appending $value to $parameter
89   * Bugfix: /demo/phpThumb.demo.check.php incorrect CURL value
90     under PHP5  (thanks nEUTRonØgmx*tm)
91   * Bugfix: [#1439110] Limit fread() calls to 8kB
92     (see http://bugs.php.net/bug.php?id=35859)
93     (thanks andig2Øusers*sourceforge*net)
94   * Bugfix: Prevent RenderToFilename() from trying to render
95     to URLs  (thanks Tim*MasseyØitrm*co*uk)
96   * Bugfix: [#1438657] missing path in phpThumbURL()
97     (thanks terracesØusers*sourceforge*net)
98   * Bugfix: zoomcrop was broken for non-square output
99     (thanks alisonØsemidivine*com, federicoØdonelleschi*com)
100   * Bugfix: suppress error messages when stat access to temp
101     dir is disabled  (thanks rfineØvnuinc*com)
102   * Bugfix: ImageMagick processing was broken for source
103     images of types not supported by GetImageSize
104     (thanks rfineØvnuinc*com)
105
106 v1.7.0 - February 15, 2006
107   ¤ ImageMagick output is used directly far more frequently
108     for much improved speed and minor quality improvement.
109   ¤ ImageMagick now processes most of the image filters if
110     possible (will fall back to GD methods if unavailable)
111   ¤ GD support is now optional if ImageMagick is installed.
112     Known limitations include:
113     - no support for HTTP source images
114     - ICO output is buggy (in some ImageMagick versions)
115     - most &fltr[] filters don't work at all
116     - 'ar', 'ra', 'far' don't work
117   ¤ Added output support for ICO (icon) format (&f=ico).
118     Currently only supports single-image icons, but multi-
119     resolution support may be added in future versions
120     New file: phpthumb.ico.php
121   ¤ Added output support for BMP (bitmap) format (&f=bmp).
122     Currently only supports 24-bit RGB format (for simplicity)
123   ¤ Added new configuration & compatability checker
124     New file: demo/phpThumb.demo.check.php
125   * ImageMagick-generated thumbnails now have extra hidden
126     contents (EXIF data, etc) stripped (by using -thumbnail
127     instead of -resize) resulting in smaller filesizes
128   * Added background fill color, opacity and extent options to
129     'wmt' filter  (thanks craigØpc-fanatics*com)
130   * Added metacharacter (^*) support for 'wmt', currently:
131     source filesize in bytes (^Fb), kB (^Fk), MB (^Fm),
132     source image width (^X), source image height (^Y),
133     thumbnail width (^x), thumbnail height (^y) and caret (^^)
134     (Feature Request #1357815)
135     (thanks ticklemeozmoØusers*sourceforge*net)
136   * Moved ImageDestroy call from OutputThumbnail to end of
137     phpThumb.php to allow multiple calls to OutputThumbnail
138   * Added config_http_user_agent for site with browsersniffers
139     (thanks redrobØgmail*com)
140   * Added $PHPTHUMB_CONFIG['disable_pathinfo_parsing'] (default
141     false) which disables parsing $_SERVER[PATH_INFO] for
142     parameters. If you want to parse PATH_INFO, set to false
143   * Added $PHPTHUMB_CONFIG['disable_imagecopyresampled'] (default
144     false) which replaces ImageCopyResampled with
145     ImageCopyResampleBicubic for buggy PHP-GD versions
146     (thanks g*pelagattiØnetface*it)
147   * Added $PHPTHUMB_CONFIG['cache_prefix'] to allow sharing of
148     cache files across virtual servers (Feature Request #1395332)
149     (thanks doggyfrØusers*sourceforge*net)
150   * Added $PHPTHUMB_CONFIG['disable_onlycreateable_passthru'] with
151     default=true (increased speed) to allow direct passthru of
152     images that don't have GD support. (Feature Request #1396446)
153     (thanks zedboyØusers*sourceforge*net)
154   * Removed $PHPTHUMB_CONFIG['cache_differentiate_offsite'] because
155     it is now automatically tied in with nooffsitelink_enabled
156     (thanks doggysworldØlibertysurf*fr)
157   * Removed phpThumb.demo.cacheconvert2.php
158   * Debug messages are now passed back from filters
159   * $PHPTHUMB_CONFIG['cache_source_filemtime_ignore_remote'] now
160     defaults to true for much-improved cached performance
161     (thanks redrobØgmail*com)
162   * $PHPTHUMB_CONFIG['cache_differentiate_offsite'] now defaults
163     to false
164   * Added $PHPTHUMB_DEFAULTS['ar']='x' to phpThumb.config.php.default
165   * Added ImageDestroy($this->gdimg_source) to GenerateThumbnail()
166     to save memory before applying image filters
167   * gd_info() no longer member of phpthumb_functions
168   * cache files now default to using SERVER_NAME without 'www.'
169   * phpUnsharpMask::applyUnsharpMask() should be faster under PHP5 by
170     using ImageFilter(IMG_FILTER_GAUSSIAN_BLUR) when radius==1
171   * Added alternate CURL method for HTTP source images if
172     allow_url_fopen is disabled  (thanks webweberØmotiondraw*com)
173   * Replaced $this->osslash with DIRECTORY_SEPARATOR constant
174   * Bugfix: [#1398327] 'new' got broken (1x1 images)
175   * Bugfix: [#1412552] HTTP source images with special characters were
176       not getting urlencoded
177   * Bugfix: ImageSaveAlpha errors on GD v2.0.0
178   * Bugfix: phpThumbDebug now entirely disabled if high_security=true
179   * Bugfix: source images with transparency lost transparency when
180     rotated  (thanks roalklØyahoo*com)
181   * Bugfix: square source images were not resized when only (w|h)(p|l)
182     parameters passed
183   * Bugfix: source images are passed through unmodified in more cases
184   * Bugfix: ImageMagick not used on systems where it exists outside
185     defined open_basedir
186   * Bugfix: ImageMagickVersion() now returns correct versionstring
187   * Bugfix: ImageMagick warnings no longer cause ImageMagick to fail
188   * Bugfix: ErrorImage no longer fatal to phpThumbDebug
189   * Bugfix: "Array to string conversion" in foreach($a as $v) loops
190     (thanks zeeshanØtargetedmedia*co*uk)
191   * Bugfix: safe mode warnings in ImageCreateFromStringReplacement
192     (thanks adminØalex-home*net)
193   * Bugfix: nooffsitelink broken if !nooffsitelink_require_refer
194     (thanks depronØgmx*net)
195   * Bugfix: phpThumb failed when magic_quotes_runtime=true
196     (thanks stansawyerØyahoo*com)
197   * Bugfix: several issues with HTTP image sources
198     (thanks redrobØgmail*com)
199   * Bugfix: phpThumb_tempnam() would return incomplete temp filenames
200     under Windows, which may result in orphaned zero-byte temp files
201     in C:\ if multiple drives exist
202
203 v1.6.2 - November 24, 2005
204   ¤ Animated GIF output is now possible if ImageMagick is
205     available and no filters (other than resize) are applied
206     (thanks brandenbassØgmail*com for idea)
207   * Added $PHPTHUMB_CONFIG['cache_force_passthru'] to work
208     around cached-image-only-works-second-time issue
209     (thanks yakoØ11y11*com)
210   * Bugfix: black borders on some image edges
211     (thanks atelierØdelirius*ch && chuckØcatalyststudio*com)
212   * Bugfix: uncaught PHP warning in RenderToFile DebugMessage
213   * Bugfix: allow phpThumbDebug in noGD PHP installations
214   * Bugfix: 'hash' warning in high_security mode
215     (thanks bernhardØwtf*at)
216   * Bugfix: non-TTF rotated text watermarks now work (unrotated)
217     with no warnings if ImageRotate is unavailable
218     (thanks aparviaiØusers*sourceforge*net)
219
220 v1.6.1 - August 26, 2005
221   ¤ Filters now use GD functions where available (using
222     ImageFilter, only available in PHP v5.0.0+ with bundled
223     version of GD). Enabled for: colorize, negative,
224     grayscale, brightness, contrast, gaussian blur, selective
225     blur, mean removal  (thanks donlaurØmac*com)
226   ¤ Added config_prefer_imagemagick (defaults=true)
227   ¤ Added phpthumb_filters::Grayscale()        'gray'
228   ¤ Added phpthumb_filters::ReduceColorDepth() 'rcd'
229   ¤ Added phpthumb_filters::Brightness()       'brit'
230   ¤ Added phpthumb_filters::Contrast()         'cont'
231   ¤ Added phpthumb_filters::Saturation()       'sat'
232   ¤ Added phpthumb_filters::EdgeDetect()    'edge' [PHP5 only]
233   ¤ Added phpthumb_filters::BlurGaussian()  'gblr' [PHP5 only]
234   ¤ Added phpthumb_filters::BlurSelective() 'gblr' [PHP5 only]
235   ¤ Added phpthumb_filters::MeanRemoval()   'mean' [PHP5 only]
236   ¤ Added phpthumb_filters::Smooth()        'smth' [PHP5 only]
237   * New timing debug info in phpThumbDebug
238   * Added config_cache_differentiate_offsite
239   * config_die_on_error now defaults to false
240   * ResolveSource works better
241   * cache filenames with 'fltr' parameters have changed
242   * Filters now skip processing if amount=0 or similar
243   * [#1263051] 'far' now accepts L,R,T,B,C as values giving
244     alignment of left/right/top/bottom/center respectively.
245     Old value of '1' defaults to centered
246     (thanks webgrappaØusers*sourceforge*net)
247   * Bugfix: RenderToFile() now fails properly when output format
248     is unknown
249   * Bugfix: PNG transparency wasn't working with 'far'
250   * Bugfix: source images with EXIF thumbnails that differ in
251     aspect ratio no longer use EXIF thumbnails as source unless
252     no other options exist
253   * Bugfix: setting 'src' with setParameter now invokes
254     setSourceFilename to properly set $this->sourceFilename
255     (thanks Gazou)
256   * Bugfix: 'zc' had poor quality when used with ImageMagick
257   * Bugfix: 'aoe' parameter broken when not using ImageMagick
258     (thanks frankieali4Øhotmail*com)
259   * Bugfix: fixed issue with symbolic links
260     (thanks hornet136Øgmail*com)
261   * Bugfix: config_max_source_pixels now defaults to same
262     calculation as used in phpThumb.config.php
263     (thanks vukshaØhotmail*com)
264   * Bugfix: Offsite cached thumbnails no longer use unique
265     referer (now either nothing or "_offsite")
266     (thanks swaayeØyahoo*com)
267   * Bugfix: "Unknown image type identified by \93<?ph\94" errors
268     in some installations  (thanks frankieali4Øhotmail*com)
269
270 v1.6.0 - July 18, 2005
271   ¤ Included new file phpThumb.demo.random.php to select a
272     random image from a specified folder, optionally only
273     landscape and/or portrait and/or square images, and to
274     display it to phpThumb.php
275     (thanks mikeØgdaymate*nl)
276   ¤ Added /docs/phpthumb.faq.txt
277   ¤ Added /demo/readme.demos.txt
278   ¤ Added 'wp', 'hp', 'wl', 'hl', 'ws', 'hs' parameters for
279     width and height of portrait, landscape and square
280     images. This allows you to display any image aspect
281     ratio at the size you want without knowing ahead of time
282     whether the image is wide or tall.
283     (thanks mikeØgdaymate*nl)
284   ¤ phpThumb.php can now also be called by passing parameters
285     in $_SERVER['PATH_INFO']. Please see phpthumb.readme.txt
286     (thanks javierØguegue*net)
287   ¤ MySQL data pulling configuration moved from phpThumb.php
288     to phpThumb.config.php
289   * "file" and "goto" parameters are now disabled by
290     default (configurable in phpThumb.config.php but not
291     recommended)
292   * Cached files are now used from first instance, avoiding
293     call to OutputThumbnail and preventing browser-side
294     cache failure
295   * Added config_allow_src_above_docroot (default=false) to
296     prevent browsing filesystem outside document_root
297     (thanks davidØint0x80*com)
298   * Added config_allow_src_above_phpthumb (default=true) to
299     prevent access to files except in subdirectories of
300     phpThumb installation  (thanks davidØint0x80*com)
301   * Added setParameter() and getParameter() functions
302     (thanks werner*kraussØhallstatt*net)
303   * SafeBackTick() renamed to SafeExec() and all execution
304     functions are tried (exec, shell_exec, system, passthru)
305     are tried in case one or more are disabled
306     (thanks bkainersØgmail*com)
307   * config_output_allow_enlarging has been removed from
308     phpthumb.class.php, and 'output_allow_enlarging' has
309     been removed from phpThumb.config.php
310   * New default detection method for
311     $PHPTHUMB_CONFIG['document_root']
312   * Bugfix: inconsitant handling of boolean parameters
313     passed "0" (isset vs !empty())  (thanks manniØzapto*de)
314   * Bugfix: text watermarks now support multiple lines
315     (thanks hanno*vandenbergØhccnet*nl)
316   * Bugfix: suppress error message in
317     ImageCreateFromStringReplacement()
318     (thanks srimandadapuØyahoo*com)
319   * Bugfix: 'aoe' was ignored in object mode
320     (thanks tonyØnylink*com)
321   * Bugfix: ResolveFilenameToAbsolute() failed on non-
322     existant filenames (file to be written, for example)
323   * Bugfix: 'aoe' parameter was ignored in cache filename
324     (thanks tonyØnylink*com)
325   * Bugfix: non-TTF watermark text had inverted opacity
326     scale. All 'wmt' is now 100=opaque, 0=transparent
327     (thanks mailØmmjaeger*com)
328   * Bugfix: cache file failed if document_root had
329     trailing slash.  (thanks lovingloboØgmail*com)
330   * Bugfix: [#1219422] Cache filename structure modified to
331     avoid excessively long filenames (cache filenames are
332     now limited to 142 characters + length of
333     $_SERVER['SERVER_NAME'])
334     (thanks trungieØusers*sourceforge*net)
335   * Bugfix: [#1211729] phpThumb.php fails to locate
336     phpThumb.config.php if the two files are in the same
337     directory but phpThumb.php is run through a sym link.
338     (thanks allanbushØusers*sourceforge*net)
339
340 v1.5.4 - May 27, 2005
341   * Security issue with passthrough addressed
342     (thanks davidØint0x80*com)
343   * 'wmt' now reads TTF fonts from the config font
344     directory, or from anywhere if a path is specified in
345     the font filename
346     (thanks mailØmmjaeger*com)
347   * Changed default error_die_on_source_failure to true in
348     phpThumb.config.php
349   * Bugfix: Firefox (possibly other browsers) did not like
350     the new (faster) cache retrieval method with Location
351     header redirection if the cached filename does not have
352     a recognized filename extension (.jpeg, .png, .gif).
353     Cached images have therefore been renamed from *_jpeg to
354     *.jpeg and the _qXX parameter has been removed for PNG
355     and GIF output. Please use the included cache renamer:
356     /demo/phpThumb.demo.cacheconvert2.php
357     (thanks mailØmmjaeger*com)
358   * Bugfix: Changed "Content-type" to "Content-Type" in all
359     header calls
360   * Bugfix: 'wmt' text opacity was broken
361     (thanks mstuhuØweb*de)
362   * Bugfix: variable name typo in phpThumb.demo.object.php
363     (thanks mbØmarko-bischof*de)
364   * Bugfix: no GD support for source image format now
365     reported as such for remote images
366     (thanks andgu842Østudent*liu*se)
367   * Bugfix: very narrow images no longer produce Invalid
368     Image Dimensions error  (thanks mailØmmjaeger*com)
369
370 v1.5.3 - May 4, 2005
371   ¤ Added new filters:
372     - 'wb' (White Balance) [ex: &fltr[]=wb|<c>]
373       where <c> is the target hex color to white balance
374       on, this color is what "should be" white, or light
375       gray. The filter attempts to maintain brightness so
376       any gray color can theoretically be used. If <c> is
377       omitted the filter guesses based on brightest pixels
378       in each of RGB
379   ¤ Cached files are used by a Location header instead of
380     being passed through phpThumb.php using readfile
381     (thanks newtnØthrillnerds*com)
382   * Added 'cache_source_filemtime_ignore_local' and
383     'cache_source_filemtime_ignore_remote' configurations
384     to ignore source modification and/or removal
385     (thanks raynerapeØgmail*com)
386   * Added 'md5s' parameter, which is the MD5 hash of the
387     source image -- if this parameter is passed with the
388     hash of the source image then the source image is not
389     checked for existance or modification and the cached
390     file is used (if available). If 'md5s' is passed an
391     empty string then phpThumb.php dies and outputs the
392     correct MD5 hash value.  This parameter is the single-
393     file equivalent of 'cache_source_filemtime_ignore_*'
394     configuration paramters  (thanks raynerapeØgmail*com)
395   * Added /demo/phpThumb.demo.object.php
396   * Unused parameter 'bgt' removed
397   * Added empty /cache/source/ directory to distribution
398   * Added /demo/ and /docs/ and /fonts/ directories
399   * Set default config_use_exif_thumbnail_for_speed = false
400   * Bugfix: Wrapped output buffering around all
401     include_once calls to prevent headers getting sent
402     accidentally
403   * Bugfix: md5_file and imagecolorallocatealpha calls
404     were undefined under PHP v4.1.x  (thanks tomØemile*com)
405   * Bugfix: default 'f' parameter ('jpeg') overrode
406     config_output_format in object mode
407     (thanks mailØmmjaeger*com)
408   * Bugfix: suppressed error message for IIS shell_exec
409     errors  (thanks tomØemile*com)
410   * Bugfix: Added PHP version check for stream_set_timeout
411     for HTTP sources  (thanks raynerapeØgmail*com)
412   * Bugfix: overlay margins of 0.5-1.0 cause invalid image
413     dimensions error  (thanks mailØmmjaeger*com)
414   * Bugfix: underlay margins were not working
415     (thanks mailØmmjaeger*com)
416   * Bugfix: [#1187735] EXIF thumbnails were incorrectly
417     output to the browser directly if requested thumbnail
418     exactly matched EXIF dimensions
419     (thanks rebootØusers*sourceforge*net)
420
421 v1.5.2 - April 20, 2005
422   ¤ phpThumb.config.php is renamed to
423     phpThumb.config.php.default to prevent accidental
424     overwriting. Please migrate your old settings to the new
425     file, delete your old config and rename the default to
426     phpThumb.config.php
427   ¤ Added new filters:
428     - 'blur' (Blur) [ex: &fltr[]=blur|<radius>]
429       where (0 < <radius> < 25) (default = 1)
430       (thanks thoensiØnetcom*no for code)
431     - 'hist' (Histogram)
432       [ex: &fltr[]=hist|<b>|<c>|<w>|<h>|<a>|<o>|<m>]
433       Where <b> is the color band(s) to display, from back
434       to front (one or more of "rgba*" for Red Green Blue
435       Alpha and Grayscale respectively);
436       <c> is a semicolon-seperated list of hex colors to
437       use for each graph band (defaults to FF0000, 00FF00,
438       0000FF, 999999, FFFFFF respectively);
439       <w> and <h> are the width and height of the overlaid
440       histogram in pixels, or if <= 1 then percentage of
441       source image width/height;
442       <a> is the alignment (same as for "wmi" and "wmt");
443       <o> is opacity from 0 to 100;
444       <m> is the edge (and inter-tile) margin in percent
445     - 'over' (OVERlay/underlay image) overlays an image on
446       the thumbnail, or overlays the thumbnail on another
447       image (to create a picture frame for example)
448       [ex: &fltr[]=over|<i>|<u>|<m>|<o>]
449       where <i> is the image filename; <u> is "0" (default)
450       for overlay the image on top of the thumbnail or "1"
451       for overlay the thumbnail on top of the image; <m> is
452       the margin - can be absolute pixels, or if < 1 is a
453       percentage of the thumbnail size [must be < 0.5]
454       (default is 0 for overlay and 10% for underlay);
455       <o> is opacity (0 = transparent, 100 = opaque)
456       (thanks raynerapeØgmail*com, shabazz3Ømsu*edu)
457     - 'gray' (GRAYscale) [ex: &fltr[]=gray]
458       is an alias to 100% desaturation
459   * New configuration 'cache_source_directory' allows the
460     unprocessed source image to be cached when source is
461     HTTP or from a database  (thanks raynerapeØgmail*com)
462   * Added 'cache' subdirectory to phpThumb distribution
463     since this is the default location for the cache
464     folder.
465   * Default value for config_error_die_on_source_failure
466     changed to true  (thanks shabazz3Ømsu*edu)
467   * Added checks to make sure $this->gdimg_output is a
468     resource before allowing calls to RenderToFile or
469     OutputThumbnail
470   * Better error messages when phpThumb.config.php missing
471   * Bugfix: watermark overlay margins were wrong
472   * Bugfix: 'lvl' filter no longer processes if not needed
473   * Bugfix: off-server thumbnail error message was wrong
474   * Bugfix: several PHP safe mode fixes
475     (thanks virginiaØalertbutnotalarmed*com)
476   * Bugfix: cache filenames broken for filter parameters
477     with paths  (thanks srcericØusers.sourceforge.net)
478
479 v1.5.1 - April 06, 2005
480   * Added some security upgrades:
481     - 'config_*' parameters cannot be passed by GETstring
482     - 'config_nooffsitelink_require_refer' is a new option
483       (disabled by default) that only allows calls to
484       phpThumb() from a refering domain listed in
485       'config_nooffsitelink_valid_domains'
486     - disallowed paramters now generate an error image if
487       present in the GETstring
488     - 'high_security_enabled' if set to true enabled new
489       mode of verification, and requires a small function
490       to generate a hash for calls to phpThumb:
491       echo '<img src="'.phpThumbURL('src=pic.jpg&w=50').'">';
492       This function is supplied at the bottom of
493       phpThumb.config.php  (thanks paulØstonie*co*uk)
494   ¤ Added new parameter "new" (phpThumb.php only) which can
495     create a new image without using "src" parameter. Set
496     "&new=<b>|<o>" where <b> is the background hex color,
497     <o> is (optional) opacity (0=transparent, 100=opaque).
498     (thanks mailØmmjaeger*com)
499   ¤ Added new filters:
500     - 'sep' (Sepia) [ex: &fltr[]=sep|<value>|<color>]
501       where <value> is a number between 0 and 100 for the
502       amount of colorization (default=50), and <color> is
503       the hex color to colorize to (default=A28065).
504       (thanks mailØmmjaeger*com)
505     - 'lvl' (Levels) [ex: &fltr[]=lvl|<channel>|<min>|<max>
506       where <channel> can be one of 'r', 'g', 'b', 'a' (for
507       Red, Green, Blue, Alpha respectively), or '*' for all
508       channels based on average grayscale value (default).
509       <min> and <max> are the clip points for the levels
510       (range = 0-255) and are set to clip 0.1% of each end
511       by default. Use -1 for min and/or max to invoke auto-
512       detect mode. Using default parameters (&fltr[]=lvl)
513       is similar to Auto Contrast in Adobe Photoshop.
514   * Bugfix: Image MIME header was incorrect for cached
515     images.
516   * Bugfix: Cache was broken for images pulled from a
517     database in phpThumb.php
518     (thanks dragutin*cvetkovicØdragontech-ltd*com)
519   * Bugfix: Hotlink/Offsite prevention was broken when
520     image was already cached.
521   * Bugfix: ImageMagick path was incorrect in some cases
522     (thanks joshgØtwcny*rr*com)
523   * Bugfix: ProportionalResize() in phpthumb.functions.php
524     had a broken check for default values
525     (thanks Bert*ClaeysØarinso*com)
526   * Bugfix: transparency now preserved for GIF & PNG input
527     (thanks tristanØcyrax*ch)
528   * Bugfix: transparency now supported for GIF output
529     (thanks j_ivanovØabv*bg)
530   * Bugfix: alpha transparency could be lost in ApplyMask()
531     (thanks analyzerxØgmail*com)
532   * Bugfix: errors on 16/32-bit BMPs
533     (thanks mattØhellstrominc*com)
534   * Bugfix: Added datestamp to cached filenames for remote
535     (HTTP) files, and better warning for caching
536     (thanks a*gambinoØabramo*it)
537   * Faster BMP parsing  (thanks sgeppertØmail*utexas*edu)
538   * Added 'error_die_on_source_failure' configuration to
539     allow invalid source images to show an error rather
540     than output unmodified source image.
541     (thanks mindpixelØgmail*com)
542   * Added $phpThumb->fatalerror which will contain the
543     text of the fatal error if 'error_die_on_error' is
544     false.  (thanks mindpixelØgmail*com)
545
546 v1.5.0 - February 4, 2005
547   * Added new filter parameter 'fltr' that is an array and
548     can apply multiple effects in sequence. Current filters
549     that can be called are:
550     - 'gam' (Gamma Correction) [ex: &fltr[]=gam|<value>]
551       where <value> can be a number >0 to 10+ (default 1.0)
552     - 'ds' (DeSaturate) [ex: &fltr[]=ds|<value>]
553       where <value> is a number between zero (no change)
554       and 100 (complete desaturation -- grayscale), or it
555       can be a negative number for saturation boost.
556       (thanks mailØmmjaeger*com)
557     - 'clr' (Colorize) [ex: &fltr[]=clr|<value>|<color>]
558       where <value> is a number between 0 and 100 for the
559       amount of colorization, and <color> is the hex color
560       to colorize to.  (thanks mailØmmjaeger*com)
561     - 'neg' (Negative) [ex: &fltr[]=neg]
562       inverts the color
563     - 'th' (ThresHold) [ex: &fltr[]=th|<val>] (range 0-255)
564       every grayscale pixel brighter than <val> is set to
565       white, every darker pixel is set to black
566       (thanks mailØmmjaeger*com)
567     - 'usm' (UnSharpMask) [ex: &fltr[]=usm|<a>|<r>|<t>]
568       where <a> is the amount (default = 80), <r> is the
569       radius (default = 0.5), <t> is the threshold
570       (default = 3).
571     - 'wmi' (WaterMarkImage)
572       [ex: &fltr[]=wmi|<f>|<a>|<o>|<m>] where <f> is the
573       filename of the image to overlay, <a> is the
574       alignment (one of BR, BL, TR, TL, C, R, L, T, B, *
575       where B=bottom, T=top, L=left, R=right, C=centre,
576       *=tile), <o> is opacity from 0 to 100, <m> is the
577       edge (and inter-tile) margin in percent
578     - 'wmt' (WaterMarkText)
579       [ex: &fltr[]=wmt|<t>|<s>|<a>|<c>|<f>|<o>|<m>|<n>]
580       where:
581       <t> is the text to use as a watermark,
582       <s> is the font size (1-5 for built-in font, or point
583         size for TrueType fonts),
584       <a> is the alignment (one of BR, BL, TR, TL, C, R, L,
585         T, B, * where B=bottom, T=top, L=left, R=right,
586         C=centre, *=tile),
587       <c> is the hex color of the text
588       <f> is the filename of the TTF file (optional, if
589         omitted a built-in font will be used)
590       <o> is opacity from 0 to 100,
591       <m> is the edge (and inter-tile) margin in percent
592       <n> is the angle
593       (thanks mailØmmjaeger*com)
594     - 'flip' [ex: &fltr[]=flip|x   or   &fltr[]=flip|y]
595       flip image on X or Y axis
596       (thanks mailØmmjaeger*com)
597     - 'elip' [ex: &fltr[]=elip]
598       similar to rounded corners but more extreme
599       (thanks mailØmmjaeger*com)
600     - 'mask' [ex: &fltr[]=mask|filename.png]
601       greyscale values of mask are applied as the alpha
602       channel to the main image. White is opaque, black
603       is transparent.
604     - 'bvl' (BeVeL) [ex: &fltr[]=bvl|<w>|<c1>|<c2>]
605       where <w> is the bevel width, <c1> is the hex color
606       for the top and left shading, <c2> is the hex color
607       for the bottom and right shading
608       (thanks mailØmmjaeger*com)
609     - 'fram' (FRAMe) draws a frame, similar to border but
610       more configurable  (thanks mailØmmjaeger*com)
611       [ex: &fltr[]=fram|<w1>|<w2>|<c1>|<c2>|<c3>]
612       where <w1> is the width of the main border, <w2> is
613       the width of each side of the bevel part, <c1> is the
614       hex color of the main border, <c2> is the highlight
615       bevel color, <c3> is the shadow bevel color
616     - 'drop' (DROP shadow)
617       [ex: &fltr[]=drop|<d>|<w>|<clr>|<a>]
618       where <d> is distance from image to shadow, <w> is
619       width of shadow fade (not yet implemented), <clr> is
620       the hex color of the shadow, and <a> is the angle of
621       the shadow (default=225)
622     - 'ric' (Rounded Image Corners)
623       [ex: &fltr[]=ric|<x>|<y>]
624       where <x> is the horizontal corner radius,
625       <y> is the vertical corner radius
626   * Split out filter functions into phpthumb.filters.php
627   * 'usa','usr','ust' parameters have been removed and
628     replaced with the 'fltr' call (see above)
629   * 'wmf','wma','wmp','wmm' parameters have been removed
630     and replaced with the 'fltr' call (see above)
631   * 'brx','bry','bw' parameters have been removed
632     and replaced with the 'fltr' call (see above)
633   * 'bw=0' to force aspect ratio has been replaced by
634     'far=1' (force aspect ratio)
635   * Filters that produce transparent sections (such as
636     Rounded Corners, Ellipse, Mask, Rotate) are now output
637     as 32-bit/alpha PNG, or flattened with "bg" background
638     color for JPEG/GIF output  (thanks mailØmmjaeger*com)
639   * Added 'zc' (Zoom Crop) parameter
640     (thanks arcookeØgmail*com, mailØmmjaeger*com,
641     pl16056Ømacnews*de, kezzasmØusers*sourceforge*net, etc)
642   * AutoRotate now can use EXIF orientation tag ('ar=x')
643   * Added 'ttf_directory' configuration parameter for
644     TrueType watermarks  (thanks mailØmmjaeger*com)
645   * Added "Last-Modified" header to cache portion of
646     phpThumb.php which should allow better user-side
647     caching of thumbnails.  (thanks derekØnetsimple*net)
648   * Added 'cache_disable_warning' configuration which will
649     cause an error image to be displayed if the cache
650     directory isn't configured, unless explicitly disabled
651   * Added 'nooffsitelink_enabled' configuration which
652     prevents linking to thumbnails on your server from
653     another domain. Defaults to watermaking linked images
654     with text warning message.
655     (thanks anteØabstraktmedia*com)
656   * Added 'error_image_width' & 'error_image_height'
657     config variables  (thanks mailØmmjaeger*com)
658   * Rounded image corners now requires GD v2.0.1 and PHP
659     v4.3.2. Corners are transparent (for PNG output) and
660     antialiased.
661   * Rotate by arbitary angle ('ra') now has a transparent
662     background for PNG output
663   * Cached filenames now have an additional component for
664     applied filters
665   * Cached filenames now have an additional component for
666     HTTP referer, but only if the refering domain does not
667     match the domain of the server (designed to prevent
668     imaged linked from offsite with error message being
669     cached the same as the local cached version)
670   * Added setSourceImageResource() to allow use of an
671     existing GD image resource for thumbnailing
672     (thanks danØgonmad*co*uk)
673   * Now including phpThumb.demo.demo1.php (main demo page)
674     and phpThumb.demo.demo2.php (configurable demo page)
675     in the phpThumb() distribution
676     (thanks mailØmmjaeger*com)
677   * Added many more debugging/tracing message points
678   * Added set_time_limit(30) to phpThumb.php
679   * Bugfix: ImageMagick not used if `which convert` points
680     to a link and not a file  (thanks bkainersØgmail*com)
681   * Bugfix: 'bgt' parameter was sometimes misspelled 'bct'
682   * Bugfix: 'wmm' couldn't be set to zero
683   * Bugfix: 'wmm' parameter was only applied to top/left of
684     image
685   * Bugfix: auto-detection of document_root failed on
686     Windows  (thanks xbartvØhotmail*com)
687   * Bugfix: phpThumbDebug could be bypassed if EXIF
688     thumbnail present  (thanks olgradinØcheckfree*com)
689   * Bugfix: cache file wasn't being written if EXIF data
690     was used directly  (thanks olgradinØcheckfree*com)
691   * Bugfix: phpThumb.demo.showpic.php was broken by popup
692     blockers for images larger than the screen.
693     (thanks mailØmmjaeger*com)
694
695 v1.4.11 - October 11, 2004
696   * Changed sx/sy/sw/sh parameters to allow decimal values
697     (>0 but <1) to represent percent of source image
698     (thanks mordorØdefault*co*yu)
699   * Added config_error_silent_die_on_error for no-output
700     die on fatal errors (thanks johannesØformformat*se)
701   * Added auto-detection of probable 'document_root' if
702     that key is not available in $_SERVER
703   * Bugfix: Check `which convert` failing with error
704     message (thanks chadØchadshome*com)
705   * Bugfix: Image cropping to invalid areas outside source
706     image caused text output (thanks mordorØdefault*co*yu)
707
708 v1.4.10 - August 22, 2004
709   * Bugfix: cached files not written in most cases
710     (thanks kizerØcourtkizer*com, snuffØinbox*ru)
711   * Bugfix: ApacheLookupURIarray() crashes in CGI mode
712     (thanks hanskrentelØyahoo*de)
713   * Bugfix: phpthumb_bmpfile2gd() was broken
714     (thanks iØmindlace*net)
715
716 v1.4.9 - August 9, 2004
717   * Bugfix: changed destination filename in RenderToFile()
718     (thanks alextkØwalla*com)
719   * Bugfix: problems with HTTP image source when called as
720     an object (thanks alextkØwalla*com)
721
722 v1.4.8 - August 4, 2004
723   * $this->error has changed to $this->errors and is now
724     an array of strings (instead of a single string)
725   * A lot more error conditions (invalid cache directory,
726     etc) are now reported in $this->errors
727     (thanks aidan*slingsbyØlineone*net)
728   * Removed all define(CONSTANT) in the phpThumb()
729     constructor - you can now access:
730     - PHPTHUMB_VERSION   == $this->phpthumb_version;
731     - PHPTHUMB_OSSLASH   == $this->osslash;
732     - PHPTHUMB_ISWINDOWS == $this->iswindows;
733   * Bugfix: Error message from apache_lookup_uri() failing
734     under Apache2 now reported cleanly
735     (thanks derbaffØyahoo*com)
736   * Bugfix: missing phpthumb_functions:: class name for
737     ImageTypeToMIMEtype() call in ExtractEXIFgetImageSize()
738     (thanks aidan*slingsbyØlineone*net)
739   * Bugfix: ImageTypeToMIMEtype() was broken for PHP older
740     than v4.3.0  (thanks georg*schreiberØbatch-pc*es)
741   * Bugfix: RenderToFile() now returns false if it fails
742     (thanks phpthumbØsendthemtomir*com)
743   * Bugfix: Corrupt JPEG/PNG/GIF files that failed
744     ImageCreateFrom*() were not being passed to ImageMagick
745     for fallback, nor passed through unmodified if IM was
746     unavailable or failed  (thanks r*chongØmogenic*net)
747   * Bugfix: Improved backtick safe-mode limit detection
748     (thanks 1Øadamcarrington*com)
749   * Bugfix: EXIF thumbnails were being used as source when
750     they should not be  (thanks aidan*slingsbyØlineone*net)
751   * Bugfix: Cached files were not being created or used
752     properly  (thanks aidan*slingsbyØlineone*net)
753   * Bugfix: max_source_pixels not set correct on some PHP
754     versions  (thanks derbaffØyahoo*com)
755   * Bugfix: 'down' parameter ignored for unprocessed and
756     cached files  (thanks aidan*slingsbyØlineone*net)
757
758 v1.4.7 - July 27, 2004
759   * Included a modified version of "module.graphic.bmp.php"
760     from getID3() [http://getid3.sourceforge.net] as
761     "phpthumb.bmp.php" for BMP reading support without
762     ImageMagick. It works, but it's *very* slow, especially
763     for large images (as in 640x480 or larger).
764   * Added check to prevent error messages when shell_exec
765     is disabled (thanks webmasterØneester*com)
766
767 v1.4.6 - July 22, 2004
768   * Added new section to phpthumb.config.php where you can
769     easily specify defaults for any parameter you can set
770     in the URL. Normally URL parameters override these
771     default values, unless you set
772     $PHPTHUMB_DEFAULTS_GETSTRINGOVERRIDE to false
773   * Renamed phpthumb.config.php to phpThumb.config.php
774     since it's part of phpThumb.php, not part of
775     phpthumb.class.php (change of case only, will not
776     affect Windows servers, but will affect *nix)
777   * Changed cached filename of rawImageData-source images
778     from urlencode('') to md5(rawImageData). This should
779     make caching thumbnails from non-file sources more
780     reliable.
781   * Added ImageMagick debugging information
782   * Removed unneccesary default values from cached
783     filenames. This may invalidate some previously cached
784     files. phpthumb.demo.cacheconvert.php has been updated
785     to handle v1.4.1-1.4.5 => v1.4.6+ cache filenames.
786   * Bugfix: Cached filename did not have file-modified
787     datestamp when used as implmented in phpThumb.php
788   * Bugfix: RenderToFile() now accepts relative filenames
789     (thanks aidan*slingsbyØlineone*net)
790   * Bugfix: AllowOutputEnlargment setting was ignored when
791     falling back to ImageMagick
792   * Bugfix: IgnoreAspectRatio setting was ignored when
793     falling back to ImageMagick
794   * Bugfix: config_temp_directory was ignored in gd_info()
795     in PHP < v4.3.0 when phpinfo() returns no GD
796     information (due to safe mode restrictions)
797     (thanks mimyrtekØmyrtek*com)
798
799 v1.4.5 - June 28, 2004
800   * Added new parameter 'down' where you can specify a
801     filename and OutputThumbnail() will cause the file
802     to be downloaded rather than displayed in the browser.
803     Demo images on silisoftware.com/scripts/phpThumb/demo/
804     can all be downloaded to show off this feature.
805     (thanks stuartscrumpØyahoo*co*uk)
806   * Added ability to remove old files from cache directory
807     based on last-access time and/or number of cached files
808     and/or total size of cached files
809     (thanks jrmhaigØyahoo*co*uk)
810   * Added public CleanUpCacheDirectory() for cache cleaning
811     (see above) if you need to call it manually
812   * Included new file phpThumb.demo.cacheconvert.php to
813     convert old-style cache names to the current (and
814     hopefully last!) standard naming convention.
815     (thanks joshgØtwcny*rr*com)
816   * Added configuration value 'document_root' for rare case
817     when $_SERVER['DOCUMENT_ROOT'] return incorrect value
818     (thanks joshgØtwcny*rr*com)
819   * Now tries to create thumbnail with ImageMagick if
820     ImageCreateFromJPEG etc fails, before falling back to
821     outputting unmodified source data.
822   * Bugfix: HTTP image sources were broken
823     (thanks fritz*weisshartØt-online*de)
824   * Bugfix: ImageMagick callout wasn't being used if EXIF
825     thumbnail was available
826     (thanks joshgØtwcny*rr*com)
827   * Bugfix: HTTP src with space in filename was broken
828     (thanks drØrhodes360*com)
829   * Bugfix: version_compare_replacement() was broken for
830     PHP v4.1.0+
831
832 v1.4.4 - June 8, 2004
833   * Bugfix: network-share (Windows) source filenames were
834     not possible. Now works, but you must use the network
835     name and not a mapped drive name, for example:
836     \\othercomputer\file.jpg - good
837     \\192.168.2.1\file.jpg - good
838     z:\file.jpg - won't work
839     This is a PHP limitation (see www.php.net/file-exists)
840     Note: you may want to use "/" slashes instead of "\" if
841     you have magic_quotes_gpc enabled to avoid stripslashes
842     problems.
843     (thanks drØrhodes360*com)
844   * Bugfix: missing "phpthumb_functions::" in
845     ImageCreateFromStringReplacement()
846     (thanks zapletalØsoftwaremedia*cz)
847
848 v1.4.3 - May 25, 2004
849   * Added new configuration variable 'config_temp_directory'
850     to allow you to specify a writable directory name for
851     temp files if you do not have access to the system temp
852     directory on your server (Safe Mode restrictions etc)
853     (thanks nickØregenmag*com)
854   * Added new configuration variable
855     'config_error_die_on_error' which can be set to false if
856     you want to retrieve the error message without having it
857     dumped as an image - the error message is now available
858     in $phpThumb->error
859   * Images are passed through directly with no processing
860     and no caching if no parameters are passed to alter the
861     image (resize, crop, sharpening, etc)
862     (thanks nchmuraØusers*sourceforge*net)
863   * Added new configuration variable 'config_disable_debug'
864     which disabled phpThumbDebug from working if you have
865     security concerns about the displayed information
866   * Bugfix: Added detection at the top of phpThumb.php for
867     no-GD errors to avoid parse errors later in the code
868     (thanks nickØregenmag*com)
869   * Bugfix: RoundedImageCorners() had some off-by-1 errors
870     (thanks ola*thunbergØhome*se)
871
872 v1.4.2 - May 10, 2004
873   * Added IE-compatability mode for transparent corners
874     (set 'bct=256')
875   * Bugfix: version_compare_replacement() was broken in PHP
876     older than 4.1.0
877     (thanks nickØregenmag*com)
878
879 v1.4.1.1 - May 9, 2004
880  * Bugfix: Removed ImageTrueColorToPalette hack.
881    See http://bugs.php.net/bug.php?id=28341
882  * Bugfix: 'maxb' option for PNG/GIF output incorrect
883    bit depth under some circumstances
884
885 v1.4.1 - May 9, 2004
886  * Added 'maxb' (MAXimum Bytes) option to auto-set the
887    output image quality (JPEG) or bit depth (PNG/GIF) so
888    that the output thumbnail is less than 'maxb' bytes
889    (thanks e_belleØhotmail*com)
890  * Added 'bgt' parameter to make rounded corners from
891    'brx'/'bry' option transparent when used with PNG
892    output. Note: PHP/GD appears buggy at this time, so this
893    option must force output to 256-color mode for this
894    to work. The feature will be updated when a non-broken
895    version of PHP/GD is released.
896    (thanks javierØircorion*net)
897  * Bugfix: Caching was broken
898    (thanks mikeØgdaymate*nl, jurewiczØgo3*pl)
899
900 v1.4.0 - April 30, 2004
901  * Rewritten as a PHP class. Split into several files:
902    - phpthumb.class.php        = most processing code
903    - phpthumb.functions.php    = support functions
904    - phpthumb.readme.txt       = usage instructions
905    - phpthumb.changelog.txt    = this file
906    - phpthumb.config.php       = configuration file
907    - phpthumb.gif.php          = Non-GD GIF reading support
908    - phpthumb.unsharp.php      = Unsharp Masking support
909    - phpThumb.php              = demo script that works
910        exactly as previous versions; this is a drop-in
911        replacement for existing phpThumb() installations
912    - phpThumb.demo.showpic.php = demo script that auto-
913        resizes a popup window to the size of the image
914        shown. Useful if you want popup images but do not
915        know the large image size beforehand
916  * Added optional call-out to ImageMagick (if avaible) if
917    source image is larger than PHP memory restrictions
918    allow. ImageMagick installation should be auto-detected
919    under *nix, but you should configure 'imagemagick_path'
920    for use under Windows.
921  * 'max_source_pixels' is now auto-calculated from PHP
922    configuration settings. Due to various server-level
923    restrictions that may override PHP settings this
924    calculated value may not always be correct, and you may
925    have to specify the value manually.
926  * Added rounded-corner border option. You must specify
927    both 'brx' (horizontal radius) and 'bry' (vertical
928    radius) as well as 'bw' (border width). If 'bw' is
929    greater than zero, the image will be shrunk to fit
930    inside the border with a margin of background color.
931    If 'bw' is zero, the corners of the image will be
932    cut off and filled with background color.
933    (thanks javierØircorion*net)
934  * Minor speed improvement for unsharp masking
935
936 v1.3.7 - March 28, 2004
937  * Bugfix: GD version detection was broken on PHP <4.3.0
938    on servers where phpinfo() was disabled
939    (thanks javierØircorion*net)
940  * Bugfix: Non-GD GIF support was broken on restricted
941    PHP configurations
942    (thanks javierØircorion*net)
943  * Bugfix: phpThumb.gif.php output error messages if PHP
944    was running in Safe Mode
945  * Added 'iar' parameter (Ignore Aspect Ratio) to allow
946    non-proportional resizing (stretch image to fit).
947    You must specify 'h' and 'w' to use this option.
948    (thanks javierØircorion*net)
949
950 v1.3.6 - March 14, 2004
951   * Bugfix: was broken when register_globals turned on
952     (thanks joshgØtwcny*rr*com)
953   * Bugfix: Images with transparent backgrounds now have
954     the background color filled with the color specified
955     by the 'bg' parameter
956   * Bugfix: ImageCreateFromString() is broken in the
957     non-bundled GD. Added workaround, but please use
958     the bundled version of GD if possible
959     (thanks dnØxbe*ch)
960   * Bugfix: EXIF thumbnail caching was broken
961   * Bugfix: EXIF thumbnail handling was broken for PHP
962     v4.2.x
963     (thanks smithk1Øshaw*ca)
964   * Bugfix: Image borders with GD2 were misaligned
965   * Bugfix: virtual paths/filenames like /~user/foo.jpg
966     should now work properly, if PHP is installed as an
967     Apache module (see www.php.net/apache-lookup-uri)
968   * Bugfix: contents of any non-image file could be
969     displayed (including PHP & HTML files)
970     (thanks arsyanØarsyan*com)
971   * Added rotation parameters 'ra' and 'ar'
972     (thanks drØrhodes360*com)
973   * Added $CONFIG['output_allow_enlarging'], defaulted
974     to false, to prevent smaller-than-max-size images
975     from being enlarged beyond their original size. If
976     you want to be able to enlarge images, set this to
977     false. Can be overridden with the 'aoe' parameter
978     (thanks dnØxbe*ch)
979   * Changed all configuration variables to be under one
980     array named $CONFIG
981   * Moved color and font options for ErrorImage() to
982     $CONFIG variables
983   * Changed cached filename structure (again) to a more
984     flexible format that can handle future expansion
985     (old cached files are invalid and will be recreated)
986   * Added more debugging code to phpThumbDebug
987
988 v1.3.5 - February 29, 2004
989   * Added capability to use EXIF thumbnail that may be
990     embedded in source image (often is in digital camera
991     JPEGs) and source image dimensions are larger than
992     $config_max_source_pixels. This will overcome the
993     limitation where PHP runs out of memory processing
994     large images (usually >1600x1200). EXIF thumbnail
995     extraction requires PHP v4.2.0 or higher and EXIF
996     support compiled into PHP (or php_exif extension)
997   * Eliminated intermediate read-file-to-memory stage if
998     image is created from local file. Should allow
999     larger images to be processed without running out of
1000     memory.
1001   * Added optional 'goto' parameter to be used with the
1002     'file' parameter, where 'goto' is a URL that is
1003     redirected to after image is rendered to file
1004     (thanks wimbleØwebdonors*com)
1005   * Added optional 'xto' parameter that will bypass all
1006     processing and just return the embedded EXIF
1007     thumbnail, if available.
1008   * Added error-handling if ImageTypes() is unavailable
1009
1010 v1.3.4 - February 15, 2004
1011   * Custom error image option (&err=img.jpg) which can
1012     also be set as $config_error_message_image_default
1013     (thanks carlØ4thstar*net)
1014   * &f=text will now output plain-text error messages
1015   * ErrorImage() now used for anti-hotlink messages (if
1016     $config_nohotlink_erase_image is true)
1017
1018 v1.3.3 - February 5, 2004
1019   * Bugfix: Added stripslashes() to filenames if
1020     magic_quotes_gpc is enabled
1021     (thanks arsyanØarsyan*com)
1022   * Output can now be rendered to a file only (not to
1023     browser) specified by the 'file' parameter
1024     (thanks arsyanØarsyan*com)
1025   * JPEG quality now has a maximum of 95%, as specified
1026     in the GD documentation
1027
1028 v1.3.2.1 - February 3, 2004
1029   * Bugfix: gd_version() was broken for GD v2.0+
1030   * Bugfix: removed debugging code
1031
1032 v1.3.2 - February 3, 2004
1033   * Bugfix: when borders are enabled, portait images
1034     with no width constraint, or landscape images with
1035     no height constraint were smaller than neccesary by
1036     double the border width
1037     (thanks jjjØxs4all*nl)
1038   * Added unsharp mask option thanks to Torstein Hønsi:
1039     http://www.vikjavev.com/hovudsida/umtestside.php
1040     Note: requires GD v2.x to function
1041     (thanks jjjØxs4all*nl)
1042   * Updated cache filenames to reflect new parameters,
1043     this means old cached files will need to be deleted
1044     (or not, they just will never get called again) and
1045     new cached versions will be created.
1046   * Added caching to gd_info() calls for minor speedup
1047
1048 v1.3.1 - February 2, 2004
1049   * Added optional border (width and color configurable)
1050     (thanks arsyanØarsyan*com)
1051   * Added option to create fixed-dimension thumbnails
1052     regardless of source aspect ration. Set the 'bw'
1053     (BorderWidth) parameter (even to 0) and this will be
1054     enabled. Outside the actual image will be filled
1055     with 'bg' color (default FFFFFF)
1056     (thanks arsyanØarsyan*com)
1057
1058 v1.3.0 - January 27, 2004
1059   * Added watermarking option to overlay thumbnails with
1060     a semi-transparent watermark image (copied from a
1061     seperate source watermark image)
1062     (thanks arsyanØarsyan*com)
1063   * Added option for absolute filenames (on both Windows
1064     and *nix) outside the DOCUMENT_ROOT directory
1065   * Added debug output dump for diagnosing problems)
1066
1067 v1.2.8 - January 19, 2004
1068   * added ability to specify relative pathnames as well
1069     as absolute pathnames (pathname is relative to the
1070     location of phpThumb.php if the passed source does
1071     not begin with "/"
1072
1073 v1.2.7 - January 7, 2004
1074   * Added patch to allow use of PHP older than 4.1.0
1075     (or GD without PNG support) for non-GD GIF support
1076     (thanks hostwebserverØhotmail*com)
1077
1078 v1.2.6 - January 4, 2004
1079   * Added patch to allow use of PHP older than 4.1.0
1080     (without the superglobals arrays)
1081
1082 v1.2.5 - December 26, 2003
1083   * Added configuration options for default output image
1084     format and max width/height
1085
1086 v1.2.4 - December 20, 2003
1087   * Bugfix: temp directory for non-native GD support not
1088     always returning valid directory
1089   * Caching feature reintroduced (see configuration)
1090
1091 v1.2.3 - December 19, 2003
1092   * Added anti-hotlink code so the thumbnail script on
1093     one domain cannot be used by another domain. The
1094     list of allowed domains defaults to the current
1095     domain but is configurable below as
1096     $config_nohotlink_valid_domains. The message, text
1097     size, colors and whether to blank the image or not
1098     are also configurable
1099   * Bugfix: URL image sources were not able to use the
1100     non-GD GIF-reading functions
1101
1102 v1.2.2 - December 17, 2003
1103   * Added option to use http:// URL as image source
1104
1105 v1.2.1 - December 11, 2003
1106   * Added option to get source data from a database
1107     rather than a physical file
1108   * Bugfix: resize not proportional when wide image
1109     limited more by max height than max width
1110     Thanks mathias_strasserØgmx*net
1111   * Removed caching code
1112
1113 v1.2.0 - December 10, 2003
1114   * Added GIF support for versions of GD that do not
1115     have built-in GIF support (v1.6.x) via the "GIF
1116     Util" class by Fabien Ezber (www.yamasoft.com)
1117     GD's built-in GIF-reading functions are faster, and
1118     are present in PHP v4.3.0 or newer, but all versions
1119     of GD can display resized GIF thumbnails now.
1120
1121 v1.1.2 - October 26, 2003
1122   * check for source image existance to prevent text
1123     error messages
1124   * if GD not available, a GIF saying "no GD" is shown
1125     instead of showing the original image
1126   * Cache feature introduced
1127
1128 v1.1.1 - September 28, 2003
1129   * better resize code by sfisher10Øcox*net
1130
1131 v1.1.0 - September 1, 2003
1132   * initial public release
1133   * thumbnails can now be larger than source image
1134   * graphical error messages
1135
1136 v1.0.0 - January 7, 2002
1137   * initial private release