1////////////////////////////////////////////////////////////////// 2// phpThumb() by James Heinrich <info@silisoftware.com> // 3// available at http://phpthumb.sourceforge.net // 4// and/or https://github.com/JamesHeinrich/phpThumb // 5////////////////////////////////////////////////////////////////// 6 7¤ = structure change or important new feature 8* = less important new feature or change 9 10v1.7.19-202210110924 11 ¤ #193 Composer - script hsp-generate for generate High Security Password 12 * [bugfix: #196] PHP8 compatibility 13 * [bugfix: #191] IMAGETYPE_AVIF not defined 14 15v1.7.18-202208061319 16 ¤ add support for AVIF image format (requires PHP 8.1.0) for native PHP support. 17 * [bugfix: G190] ensure that all used IMG_ and IMAGETYPE_ constants are always defined. 18 * [bugfix: G188] fix some potential null-parameter warnings 19 * [bugfix: G187] PHP8 compatibility 20 * [bugfix: G185] PHP8 compatibility 21 * [bugfix: G183] better message auth 22 23v1.7.17-202109221111 24 * [bugfix: G171] problem with class_exists and autoloading 25 * [bugfix: G173] file_get_contents instead of readfile 26 * [bugfix: G178] missing quality parameter in webp 27 * [bugfix: G181] missing webp in ImageCreateFromFilename 28 29v1.7.16-202012161640 30 ¤ PHP 8.0 compatibility 31 * [bugfix: G168] bad call to $this inside static function 32 * [bugfix: G167] realPathSafe() issues on Windows 33 * [bugfix: G164] open_basedir on Windows prevents caching 34 * [bugfix: G155] PHP 7.4 compatibility 35 * [bugfix: G154] regex for external image source 36 37v1.7.15-202004301145 38 ¤ PHP 7.4 curly brace substring compatibility 39 ¤ add basic support for WebP 40 * [bugfix: G18] fopen() fails when using remote images from SSL 41 * [bugfix: G65] ImageMagick -flatten vs PNG transparency 42 * [bugfix: G75] improved InitializeTempDirSetting 43 * [bugfix: G76] fix memory limit detection 44 * [bugfix: G78] AllowOutputEnlargement and Zoom-Crop 45 * [bugfix: G90] missing $PHPTHUMB_CONFIG 46 * [bugfix: G91] missing config_ prefix in allow_local_http_src 47 * [bugfix: G93] ImageMagick unsharp amount/threshold 48 * [bugfix: G94] cannot declare class phpthumb_functions 49 * [bugfix: G96] language level migration fixes 50 * [bugfix: G108] add 'line-height' for text in image 51 * [bugfix: G113] fix PNGs losing transparency 52 * [bugfix: G123] improved default thumbnail filename 53 * [bugfix: G126] overlay on transparent image 54 * [bugfix: G133] fix 'wmi' and 'wmt' filters 55 * [bugfix: G134] fix fsockopen http status text 56 * [bugfix: G140] parse_url return user/pass 57 * [bugfix: G142] allow transparent background when using 'far' 58 * [bugfix: G144] fix class_exists 59 * [bugfix: G149] magic quotes deprecated in PHP 7.4.2 60 * bugfix: ImageMagick v7+ parameter order (in, op, out) 61 62v1.7.14-201608101311 63 ¤ improved PHP7 compatability 64 * [bugfix: #1021] demo.gallery updates for phpThumbURL 65 * [bugfix: G65] PNG transparency 66 * [bugfix: G70] set a default timezone if one is not set 67 * [bugfix: G69] overlay margins 68 * [bugfix: G66] lowercase all PHP function names 69 * [bugfix: G64] Can't put thumbnail into a frame 70 * [bugfix: #1014] PDF thumbnail not rendered correctly 71 * [bugfix: #1008] phpThumbURL accept array parameters 72 * [bugfix: #988] mysqli support in demo 73 * [bugfix: G41] fail when memory_limit = -1 74 * [bugfix: G35] no temp directory set 75 * [bugfix: G33] realpath not working on some systems 76 * [bugfix: #991] ImprovedImageRotate not static 77 * set Last-Modified header on all requests 78 * [bugfix: G19] phpThumbURL() rawurlencode 79 * [bugfix: G26] ImageInterlace in RenderOutput() 80 * [bugfix: #775] file_exists_ignoreopenbasedir 81 * escapeshellarg disabled workaround 82 * [bugfix: #977] $PHPTHUMB_DEFAULTS not working 83 * [bugfix: G24] enable ImagePNG quality 84 * [bugfix: G25] escapeshellarg may exist but be disabled 85 86v1.7.13-201406261000 - June 26, 2014 87 * Bugfix: incorrect variable name in phpThumb.php could prevent 88 all hash values from matching 89 90 91v1.7.12-201406260900 - June 26, 2014 92 ¤ high_security_mode enabled by default and strongly recommended 93 ¤ debug mode must be disabled to allow thumbnail generation 94 Thanks to Rafay Baloch (www.rafayhackingarticles.net) for 95 recommending some security configuration changes 96 * default config_cache_directory_depth is now 2 (was 4) 97 * Bugfix: temp files used with ImageMagick might not get deleted 98 from cache directory 99 * Bugfix (G:17): 'far' parameter not working as intended 100 * Bugfix (G:16): $PHPTHUMB_DEFAULTS configuration ignored 101 * Bugfix (G:15): $PHPTHUMB_DEFAULTS_GETSTRINGOVERRIDE logic wrong 102 * Bugfix (G:11): config_cache_maxsize does not count wasted space 103 * Bugfix (G:10): error images ignored relevant config options 104 * Bugfix (#962): support symlinked subfolders for image source 105 * Bugfix (#934): source image region (sx/sy/sw/sh) did not work 106 when using ImageMagick 107 * Bugfix (#925): add configurable URL separator 108 * Bugfix (#921): non-static phpUnsharpMask::applyUnsharpMask() 109 * Bugfix (#920): $PHPTHUMB_DEFAULTS with array value gives 110 array-to-string PHP error 111 * Bugfix (#909): unnecessary calls of shell commands when cached 112 * Bugfix (#618): cached files inside subdirs won't be deleted 113 * Bugfix (#594): ImageMagick variants not detected (e.g. OpenMP) 114 115 116v1.7.11-201108081344 - August 8, 2011 117 ¤ Added even more explicit escaping of command line parameters 118 ¤ $PHPTHUMB_CONFIG['high_security_password'] needs to be more 119 complex than before. Previously 5 characters length was 120 required, now password strength calculated based on character 121 type (a-z, A-Z, 0-9, other) and count. 122 See PasswordStrength() function in phpThumb.php 123 ¤ deliberate delay inserted on failed hash in high_security mode 124 to slow down brute force attempts 125 ¤ 'file' paramter removed (use object mode instead) 126 ¤ 'goto' paramter removed (use object mode instead) 127 ¤ Disable all demos by default, user will need to comment out a 128 line to run the demo 129 ¤ CleanUpCacheDirectory() is now only called once per hour, and 130 skipped entirely if cache directory is not writable 131 * Bugfix: crop broken if width or height set to 1.00 132 * Bugfix: gamma filter for ImageMagick was broken 133 * Bugfix: newer versions of ImageMagick have changed "-gaussian" 134 filter to "-gaussian-blur" 135 * Bugfix: newer versions of ImageMagick have changed date format 136 from DD/MM/YY to YYYY-MM-DD 137 * Bugfix: image not found errors when using virtual subdirectories 138 * Bugfix: assorted errors in phpThumb.demo.check.php 139 * Bugfix (#265): source images other than JPEG/PNG/GIF would not 140 generate thumbnails for remote (http) images but work locally 141 * Bugfix (#253): ImageMagick not found if outside open_basedir 142 * Bugfix (#243): port ignored in URLreadFsock() 143 * Bugfix (#240): Any temporary file created through 144 phpThumb_tempnam() is automatically deleted at the end of the 145 script via phpThumb object destructor (PHP5 only) 146 * Bugfix (#216): uninitialized string offset 147 * Bugfix (#209): don't try ImageMagick first if 148 config_prefer_imagemagick == false 149 * Bugfix (#127): CleanUpURLencoding() ignored port number 150 * Bugfix (#38): CleanUpCacheDirectory() ignored config_cache_prefix 151 * Bugfix (#31): ExtractEXIFgetImageSize() may throw errors on non- 152 JPEG/TIFF images when calling exif_read_data() 153 154 155v1.7.10 - April 24, 2011 156 * ImageMagickVersion() returned unknown-version for versions 157 with hyphenated subversion numbers 158 (thanks r34wangØuwaterloo*ca) 159 * replace all ereg* functions with preg* equivalents for 160 PHP v5.3.0+ compatability 161 * Bugfix: security vulnerabilities when used with ImageMagick 162 163 164v1.7.9 - May 28, 2008 165 * "ra" (rotation) now handled by ImageMagick directly. 166 Note: If output to transparent-supporting format (PNG,GIF) 167 them ImageMagick support only enabled for v6.3.7 and above 168 when rotating to nonmultiples of 90° (e.g. rotate by 30°). 169 Transparent area behind rotate image buggy in v6.2.9 and 170 working fine in v6.3.7 (exact version where fixed is 171 unknown, reports welcome) 172 * Debug now shows server software version 173 * Debug now checks for GetImageSize() availability 174 * Better error message when neither ImageMagick nor GD are 175 installed on server (thanks kevinmØbuenacg*com) 176 * Bugfix: uncaught image-too-large exception when using 177 HTTP source image and ImageMagick is unavailable or fails 178 (thanks jslaggerØjsamdirect*com) 179 * Bugfix: phpThumb could sometimes die without showing an 180 error message when using an HTTP/data image source that is 181 too large for GD processing with PHP memory limit 182 (thanks jslaggerØjsamdirect*com) 183 * Bugfix: prevent error images from clobbering debug output 184 * Bugfix: temp file for ImageMagick processing not created 185 correctly when source image is HTTP or from non-file data 186 (thanks jonahØschwartzdev*com, tsolanØgmail*com) 187 * Bugfix: Filters are only removed from the processing queue 188 if ImageMagick supports them AND returns successfully 189 (thanks tsolanØgmail*com) 190 * Bugfix: ImageCreateFromStringReplacement() doesn't need to 191 fail in safe_mode if can still write temp file somewhere 192 (thanks avatar1983Øgmail*com) 193 * Bugfix: ImageMagickThumbnailToGD() doesn't need to 194 fail in safe_mode if can still write temp file somewhere 195 (thanks avatar1983Øgmail*com) 196 * Bugfix: better error messages when safe_mode enabled and 197 using MySQL database for image source 198 (thanks avatar1983Øgmail*com) 199 * Bugfix: "wmt" alignment broken for built-in fonts 200 (thanks mailØmmjaeger*com) 201 * Bugfix: CleanUpCacheDirectory() has some undefined 202 variables that might have been the cause of the images- 203 don't-show-on-first-page-load bug 204 (thanks hgØdynweb*net) 205 * Bugfix: phpThumb.php would not correctly skip unneeded 206 processing if source image was smaller than target size 207 (thanks adam*kingØcarnegiecycling*com*au) 208 * Bugfix: phpThumb.demo.check.php incorrectly calculated 209 age of ImageMagick version (for versions < 180 days old) 210 211 212v1.7.8 - September 16, 2007 213 ¤ Added 'stc' (Source Transparent Color) filter 214 (Feature Request #1672440) 215 ¤ 'zc' now supports directed crop (top/bottom/left/right) 216 (thanks leeØvirtualinkdesign*com, chrisØsostreassoc*com) 217 ¤ new class function resetObject() should be used to reset 218 default class paramters to default to allow reusing a 219 single object on multiple images 220 (see phpThumb.demo.object.php) 221 (thanks bjohnsonØaccomplishhosting*com) 222 ¤ "wmt" and "wmi" filters now support absolute positioning 223 using alignment values: {xoffset}x{yoffset} (eg: "10x20") 224 (Feature Request #1567113) 225 (thanks mailØpedrocandeias*com; 226 squidlibertyØusers*sourceforge*net) 227 ¤ "wmi" filter now supports watermark scaling & rotation 228 (Feature Request #1788063) 229 (thanks glen*fiebichØ2020promo*com) 230 ¤ Added "size" filter. NOTE: try not to use this filter, 231 it is inefficient and for special purposes only, please 232 see phpthumb.readme.txt entry before using. 233 (thanks glen*fiebichØ2020promo*com) 234 * Added wildcard domain options for config settings 235 nooffsitelink_valid_domains and nohotlink_valid_domains 236 (thanks meØjohannes*jarolim*com) 237 * Output image format defaults to input format (based on 238 filename) (thanks bjohnsonØaccomplishhosting*com) 239 * Sepia filter now uses ImageFilter under PHP5 240 (thanks richard*comleyØmademedia*co*uk) 241 * "f" parameters now accepts formats with leading "." 242 (eg "&f=.png") to allow you to fool things that look at 243 the last characters of the URL to determine image type 244 (thanks alexØalexderas*nl) 245 * Added section to phpthumb.demo.check.php to test cache 246 file creation and deletion 247 * Bugfix [#1715256]: ImageMagick output not always used 248 if fltr set incorrectly 249 (thanks danakiØusers*sourceforge*net) 250 * Bugfix [#1541673]: ResolveFilenameToAbsolute() fails in 251 RenderToFile() if target file does not exist 252 (thanks jasonpellØusers*sourceforge*net) 253 * Bugfix [#1703373]: CleanUpURLencoding() broken if path 254 element equals "0" 255 (thanks izeronØusers*sourceforge*net) 256 * Bugfix [#1573399]: phpthumb_filters::Colorize() broken 257 under PHP5 (thanks cerwØusers*sourceforge*net) 258 * Bugfix [#1573399]: ImageMagick version of colorize filter 259 missing quotes (thanks cerwØusers*sourceforge*net) 260 * Bugfix [#1733462]: SafeExec broken 261 (thanks hansfnØusers*sourceforge*net) 262 * Bugfix [#1751821]: open_basedir restriction gives warning 263 when trying to initialize config_temp_dir 264 (thanks k-mystikØusers*sourceforge*net) 265 * Bugfix: [#1751880]: open_basedirs not initialized properly 266 under Windows (thanks k-mystikØusers*sourceforge*net) 267 * Bugfix: "A non well formed numeric value encountered" error 268 when using "cont" filter in PHP5 269 (thanks isnbitØyahoo*com) 270 * Bugfix: Colorize filter ignored $amount under PHP5 271 (thanks richard*comleyØmademedia*co*uk) 272 * Bugfix: double-drawn color in corders of Bevel filter 273 (thanks m*westmijzeØstudent*utwente*nl) 274 * Bugfix: 'nocache' parameter was forbidden 275 (thanks andreasØkringelstan*se) 276 * Bugfix: disabled functions (set_time_limit, shell_exec, etc) 277 not always correctly detected 278 (thanks ryandemmerØgmail*com, dr*creatorØgmail*com) 279 * Bugfix: phpThumbURL() was broken if __FILE__ and 280 $PHPTHUMB_CONFIG['document_root'] had different slash 281 styles (\ vs /) (thanks jobbetØskarin*com) 282 * Bugfix: 'wmt' watermark text not properly right- or center- 283 aligned with TTF fonts 284 * Bugfix: force stderr output to stdout in SafeExec 285 * Bugfix: filter-generated debug messages not passed back 286 * Bugfix: /demo/phpThumb.demo.gallery.php was not getting 287 correct DOCUMENT_ROOT value on some servers 288 (thanks latex*dragonØgmail*com) 289 * Bugfix: HTTP source images with no parameters were not 290 being passed through directly (thanks chrisØmegawap*net) 291 * Bugfix: "unknown image type" errors on non-GD-supported 292 remote image sources (thanks chrisØgorillachicago*com) 293 * Bugfix: remote images not found if server returned 302 294 message with text other than "Found" 295 (thanks cveleØdefault*co*yu, kevinØkevinevans*net) 296 * Bugfix: resetObject() was clobbering debug messages 297 (thanks kevinØkevinevans*net) 298 * Bugfix: CleanUpURLencoding() was broken 299 (thanks kevinØkevinevans*net) 300 * Bugfix: Cache auto-purging was generally broken, especially 301 if the cache contained a directory or filename of "0" 302 (thanks hannoØxcalak*info; webdesignØweisshart*de) 303 304 305 306v1.7.7 - December 25, 2006 307 ¤ Added phpThumb.demo.gallery.php -- basic image gallery demo 308 ¤ Added option for image watermark for anti-hotlinking. See 309 phpThumb.config.php "nooffsitelink_watermark_src" 310 (thanks rik_helsenØrad*be) 311 ¤ Added config option "imagemagick_use_thumbnail" to control 312 use of ImageMagick's "-thumbnail" command vs "-resize" (the 313 former discards non-visible metadata, the latter retains it) 314 Most times you want the smallest filesize so keep the default 315 setting (imagemagick_use_thumbnail==true) 316 (thanks niklasØmysticalgarden*se) 317 * Bugfix [#1620056]: EnsureDirectoryExists() failed to create 318 some directory structures (thanks jeromyØlocallinux*com) 319 * Bugfix [#1620056]: CleanUpCacheDirectory() would not purge 320 files from subdirectories if (cache_directory_depth > 0) 321 (thanks kingsquareØusers*sourceforge*net) 322 * Bugfix: nooffsitelink_* broken when running on non-standard 323 HTTP port (thanks marianbucur17Øyahoo*com) 324 325 326v1.7.6 - December 09, 2006 327 ¤ Added "sia" (Save Image As) parameter to provide default 328 filename when saving generated thumbnails 329 (thanks web_mkØhotmail*com) 330 ¤ Changed "lvl" filter parameters, and added option to choose 331 between four different methods (two internal, two from 332 ImageMagick). Added configurable threshold parameter. 333 (thanks publicØwoktiny*com for code for new internal method) 334 ¤ "wb" (White Balance) filter now processed by ImageMagick 335 * Changed GD max source pixels to 1/6 (from 1/5) available 336 memory, and changed SourceImageIsTooLarge() to account for 337 already-used memory (if known) 338 * More graceful error handling in object mode when source 339 larger than PHP memory limit and ImageMagick unavailable 340 (thanks djasonØdjason*com) 341 * Added ImageMagickFormatsList() 342 * CleanUpCacheDirectory() now also purges zero-byte orphan 343 files left over from aborted thumbnailings 344 * Bugfix [#1606069]: Changed default urlencoded space 345 character from "+" to "%20" 346 * Bugfix [#1608664]: "Unsupported operand types" in "wmi" 347 filter (thanks haydurØhaydur*com; squidliberty) 348 * Bugfix: debug mode now supports text output in all modes 349 * Bugfix: ImageMagick creation attempted before GD creation 350 * Bugfix: no longer fails silently if GD creation runs out of 351 memory 352 * Bugfix: poor alpha rendering from PNG to GIF with ImageMagick 353 * Bugfix: "wb" filter had no effect when "lvl" filter applied 354 in ImageMagick instead of GD 355 356 357v1.7.5 - October 03, 2006 358 ¤ Deprecated parameters "err", "file", "goto" 359 ¤ Added broad cache directory feature (see phpThumb.config.php 360 "cache_directory_depth") to spread cache files across many 361 directories for improved performance and ability to store 362 very large numbers (30000+) of cached files 363 (thanks despoixØopenxtrem*com) 364 ¤ phpThumb now follows HTTP redirects (status=302) to new 365 HTTP image URLs (configurable: config_http_follow_redirect) 366 (thanks shannahØsfu*ca) 367 ¤ Added "rot" (ROTate) filter which is similar to "ra" parameter 368 but now allows rotation of output of other filters (for 369 example, rotate image after fltr[]=mask is applied) 370 (thanks markØwoodjoint*ca) 371 ¤ Added WBMP output support (built-in GD or via ImageMagick) 372 (code was already mostly present, just was not allowed format) 373 ¤ [#1567113] "wmi" filter now accepts both x and y margins 374 and can be in pixels or percent of thumbnail dimensions 375 (thanks squidlibertyØusers*sourceforge*net) 376 * "hist" filter now accepts both X and Y margins 377 * Added config variables: config_http_fopen_timeout = 10; 378 config_http_follow_redirect = true 379 * Changed MIME type for WBMP to image/vnd.wap.wbmp 380 * Bugfix: Check for GD format support before attempting output 381 * Bugfix: Opening HTTP source images with URL query parameters 382 was broken (eg: http://host/show?id=123) 383 (thanks ivo*beckersØinfopractica*nl) 384 385 386v1.7.4 - August 17, 2006 387 ¤ Improved version of /demo/phpThumb.demo.showpic.php uses 388 phpThumb.php so any filters can be applied, as well as 389 resized image popups. 390 New file: /demo/javascript_api.js 391 Uses Javascript API by James Austin <jamesdozØhotmail*com> 392 (http://aspandjavascript.co.uk/javascript/javascript_api/) 393 ¤ Added "sfn" (Source Frame Number) parameter to specify 394 source frame in multi-frame/multi-page source formats, such 395 as GIF, TIFF, PDF, etc (thanks despoixØopenxtrem*com) 396 ¤ Added "dpi" (Dots Per Inch) parameter to specify 397 rasterising resolution for vector source formats (PDF, WMF) 398 (requires ImageMagick) (thanks despoixØopenxtrem*com) 399 * Added /demo/phpThumb.demo.object.simple.php 400 * Added debug points inside GenerateThumbnail 401 * Explicit error message for unsupported PDF source images 402 * Bugfix: SafeURLread broken with GETstring parameters in 403 fsockopen mode 404 * Bugfix: [#1540523] CleanUpCacheDirectory() does not delete 405 files as expected (thanks patricksleeØusers*sourceforge*net) 406 * Bugfix: added useful error message when no source specified 407 in object mode (thanks infoØdoepud*co*uk) 408 * Bugfix: timeout value ignored in URLreadFsock() 409 * Bugfix: timeout missing in SafeURLread CURL part 410 * Bugfix: ImageMagick now checked with --version (not -version) 411 * Bugfix: better ImageMagick (numeric) version number matching 412 * Bugfix: noGD errors showing up when GD imagecreate functions 413 fail and ImageMagick not available 414 (thanks caseyyØgmail*com) 415 * Bugfix: "-thumbnail" parameter not present in older versions 416 of ImageMagick, now using -resize if -thumbnail unavailable 417 (thanks atombomb96Øbtopenworld*com) 418 * Bugfix: "-resize" parameter requires explicit dimensions 419 ("100x100" instead of "100x") in older ImageMagick versions 420 (thanks atombomb96Øbtopenworld*com) 421 * Bugfix: phpThumb crashed with no output if ImageMagick failed 422 to resize but output image larger than max_source_pixels 423 (thanks atombomb96Øbtopenworld*com) 424 * Bugfix: phpThumb might die with no output on some large source 425 images when ImageMagick unavailable. 426 (thanks atombomb96Øbtopenworld*com) 427 428 429v1.7.3 - July 11, 2006 430 * Now returns useful message for HTTP sources if 404-file- 431 not-found (or similar) errors occur 432 * Added new fsockopen() section in SafeURLread() 433 * Removed PNG alpha warning for IE 7 (alpha PNGs now work) 434 * Bugfix: ImageMagick failing version check and dumping text 435 output (thanks infoØdevsystem*net) 436 * Bugfix: curl_exec failing with text output 437 (thanks infoØdevsystem*net) 438 * Bugfix: workaround for PHP Bug #36102 (fopen(http) crash 439 in PHP v4.4.2 440 * Bugfix: "Unknown image type identified by..." problem when 441 opening http:// source images 442 (thanks webmasterØdanceage*com) 443 444 445v1.7.2 - June 22, 2006 446 ¤ [#1256693] Added $this->exif_raw_data which is returned 447 data from exif_read_data() on source image. 448 Requires PHP v4.2.0+ (thanks tebiØusers*sourceforge*net) 449 ¤ Added $this->outputImageData and RenderOutput() to allow 450 easy outputting of thumbnail data to a database or such. 451 Call RenderOutput() instead of RenderToFile() and then 452 access raw data in $this->outputImageData 453 (thanks r*cremerØswitch*nl) 454 ¤ Added 'crop' filter, which is applied after resizing (as 455 opposed to sx,sy,sw,sh which are before resizing) 456 (thanks scottØscottjehl*com) 457 * Enable creating new images with PATH_INFO style call 458 (thanks edenØinstyleit*com*au) 459 * Added warning message to encourage users not to use 460 full HTTP paths for "src" parameter 461 * Added fallback 'preg_quote' to phpthumb.functions.php in 462 case your PHP installation does not have preg_* functions 463 (thanks mortenØemeskay*dk) 464 * Added fallback 'imagesavealpha' if GD < v2.0.1 465 (thanks oliver*heegerØweb*de) 466 * Added fallback 'imagealphablending' if GD < v2.0.1 467 (thanks oliver*heegerØweb*de) 468 * Added 'nocache' parameter that suppresses writing to cache 469 file, but only if high_security_enabled is set 470 (thanks federicoØdonelleschi*com) 471 * Attempt to detect supported ImageMagick features 472 (thanks simonØjapancentre*com) 473 * Added temp dir detection to phpThumb.demo.check.php 474 * Added ImageMagick dir to phpThumb.demo.check.php 475 * Added ImageMagick features to phpThumb.demo.check.php 476 * Default (config_allow_src_above_docroot = true) when PHP 477 running in "cli" mode (thanks flobeeØgmail*com) 478 * Bugfix: [#1470791] 'iar' not working properly with 479 ImageMagick (thanks w1xØusers*sourceforge*net) 480 * Bugfix: [#1498564] illegal characters in cache filenames 481 (thanks carl-evertØusers*sourceforge*net) 482 * Bugfix: 'sx','sy','sw','sh','zc' cache parameters broken 483 (thanks federicoØdonelleschi*com) 484 * Bugfix: 'config_max_source_pixels' incorrectly handled 485 (thanks oliver*heegerØweb*de) 486 * Bugfix: 'aoe' not working properly 487 (thanks w1xØusers*sourceforge*net) 488 * Bugfix: setParameter() was broken for arrays 489 * Bugfix: setSourceFilename() wasn't setting 'src' 490 * Bugfix: suppress stat()-related file permission 491 notices (thanks lanceØmainecoastdesign*com) 492 * Bugfix: image format now initialized during ErrorImage() 493 * Bugfix: domain matching now case-insensitive 494 * Bugfix: some versions of ImageMagick not detected 495 (thanks arvidØfys*ku*dk) 496 * Bugfix: sometimes no image returned in safe_mode 497 (thanks bkainersØgmail*com) 498 * Bugfix: 'far' not always handled correctly 499 (thanks matthew*newtonØrealworldweb*com) 500 * Bugfix: PATH_INFO method not working if no filters specified 501 (thanks jjimenezØpracticaldata*com) 502 * Bugfix: first (internal) call to ImageMagickVersion() failed 503 under Windows 504 * Bugfix: Images source-cropped AND resized with ImageMagick were 505 wrong size (cropped size, not resized size) 506 (thanks joao*saleiroØwebfuel*pt) 507 * Bugfix: stat() warnings in CleanUpCacheDirectory() 508 (thanks christianØhss-haage*de) 509 * Bugfix: $PHPTHUMB_DEFAULTS not working when no other processing 510 parameters specified (thanks tbittnersØcox*net) 511 512 513v1.7.1 - March 16, 2006 514 * /demo/phpThumb.demo.check.php now checks: 515 - server software 516 - local and master config values (with ini_get and 517 get_cfg_var respectively) (thanks nEUTRonØgmx*tm) 518 - existance of assorted PHP functions and explains their 519 importance 520 * Bugfix: config_error_die_on_error now defaults to FALSE to 521 prevent object-mode errors dying in an error image 522 (thanks moshØtobt*de; riteshgupta1974Øgmail*com) 523 * Bugfix: setParameter() now handles array parameters (such 524 as 'fltr') by appending $value to $parameter 525 * Bugfix: /demo/phpThumb.demo.check.php incorrect CURL value 526 under PHP5 (thanks nEUTRonØgmx*tm) 527 * Bugfix: [#1439110] Limit fread() calls to 8kB 528 (see http://bugs.php.net/bug.php?id=35859) 529 (thanks andig2Øusers*sourceforge*net) 530 * Bugfix: Prevent RenderToFilename() from trying to render 531 to URLs (thanks Tim*MasseyØitrm*co*uk) 532 * Bugfix: [#1438657] missing path in phpThumbURL() 533 (thanks terracesØusers*sourceforge*net) 534 * Bugfix: zoomcrop was broken for non-square output 535 (thanks alisonØsemidivine*com, federicoØdonelleschi*com) 536 * Bugfix: suppress error messages when stat access to temp 537 dir is disabled (thanks rfineØvnuinc*com) 538 * Bugfix: ImageMagick processing was broken for source 539 images of types not supported by GetImageSize 540 (thanks rfineØvnuinc*com) 541 542v1.7.0 - February 15, 2006 543 ¤ ImageMagick output is used directly far more frequently 544 for much improved speed and minor quality improvement. 545 ¤ ImageMagick now processes most of the image filters if 546 possible (will fall back to GD methods if unavailable) 547 ¤ GD support is now optional if ImageMagick is installed. 548 Known limitations include: 549 - no support for HTTP source images 550 - ICO output is buggy (in some ImageMagick versions) 551 - most &fltr[] filters don't work at all 552 - 'ar', 'ra', 'far' don't work 553 ¤ Added output support for ICO (icon) format (&f=ico). 554 Currently only supports single-image icons, but multi- 555 resolution support may be added in future versions 556 New file: phpthumb.ico.php 557 ¤ Added output support for BMP (bitmap) format (&f=bmp). 558 Currently only supports 24-bit RGB format (for simplicity) 559 ¤ Added new configuration & compatability checker 560 New file: demo/phpThumb.demo.check.php 561 * ImageMagick-generated thumbnails now have extra hidden 562 contents (EXIF data, etc) stripped (by using -thumbnail 563 instead of -resize) resulting in smaller filesizes 564 * Added background fill color, opacity and extent options to 565 'wmt' filter (thanks craigØpc-fanatics*com) 566 * Added metacharacter (^*) support for 'wmt', currently: 567 source filesize in bytes (^Fb), kB (^Fk), MB (^Fm), 568 source image width (^X), source image height (^Y), 569 thumbnail width (^x), thumbnail height (^y) and caret (^^) 570 (Feature Request #1357815) 571 (thanks ticklemeozmoØusers*sourceforge*net) 572 * Moved ImageDestroy call from OutputThumbnail to end of 573 phpThumb.php to allow multiple calls to OutputThumbnail 574 * Added config_http_user_agent for site with browsersniffers 575 (thanks redrobØgmail*com) 576 * Added $PHPTHUMB_CONFIG['disable_pathinfo_parsing'] (default 577 false) which disables parsing $_SERVER[PATH_INFO] for 578 parameters. If you want to parse PATH_INFO, set to false 579 * Added $PHPTHUMB_CONFIG['disable_imagecopyresampled'] (default 580 false) which replaces ImageCopyResampled with 581 ImageCopyResampleBicubic for buggy PHP-GD versions 582 (thanks g*pelagattiØnetface*it) 583 * Added $PHPTHUMB_CONFIG['cache_prefix'] to allow sharing of 584 cache files across virtual servers (Feature Request #1395332) 585 (thanks doggyfrØusers*sourceforge*net) 586 * Added $PHPTHUMB_CONFIG['disable_onlycreateable_passthru'] with 587 default=true (increased speed) to allow direct passthru of 588 images that don't have GD support. (Feature Request #1396446) 589 (thanks zedboyØusers*sourceforge*net) 590 * Removed $PHPTHUMB_CONFIG['cache_differentiate_offsite'] because 591 it is now automatically tied in with nooffsitelink_enabled 592 (thanks doggysworldØlibertysurf*fr) 593 * Removed phpThumb.demo.cacheconvert2.php 594 * Debug messages are now passed back from filters 595 * $PHPTHUMB_CONFIG['cache_source_filemtime_ignore_remote'] now 596 defaults to true for much-improved cached performance 597 (thanks redrobØgmail*com) 598 * $PHPTHUMB_CONFIG['cache_differentiate_offsite'] now defaults 599 to false 600 * Added $PHPTHUMB_DEFAULTS['ar']='x' to phpThumb.config.php.default 601 * Added ImageDestroy($this->gdimg_source) to GenerateThumbnail() 602 to save memory before applying image filters 603 * gd_info() no longer member of phpthumb_functions 604 * cache files now default to using SERVER_NAME without 'www.' 605 * phpUnsharpMask::applyUnsharpMask() should be faster under PHP5 by 606 using ImageFilter(IMG_FILTER_GAUSSIAN_BLUR) when radius==1 607 * Added alternate CURL method for HTTP source images if 608 allow_url_fopen is disabled (thanks webweberØmotiondraw*com) 609 * Replaced $this->osslash with DIRECTORY_SEPARATOR constant 610 * Bugfix: [#1398327] 'new' got broken (1x1 images) 611 * Bugfix: [#1412552] HTTP source images with special characters were 612 not getting urlencoded 613 * Bugfix: ImageSaveAlpha errors on GD v2.0.0 614 * Bugfix: phpThumbDebug now entirely disabled if high_security=true 615 * Bugfix: source images with transparency lost transparency when 616 rotated (thanks roalklØyahoo*com) 617 * Bugfix: square source images were not resized when only (w|h)(p|l) 618 parameters passed 619 * Bugfix: source images are passed through unmodified in more cases 620 * Bugfix: ImageMagick not used on systems where it exists outside 621 defined open_basedir 622 * Bugfix: ImageMagickVersion() now returns correct versionstring 623 * Bugfix: ImageMagick warnings no longer cause ImageMagick to fail 624 * Bugfix: ErrorImage no longer fatal to phpThumbDebug 625 * Bugfix: "Array to string conversion" in foreach($a as $v) loops 626 (thanks zeeshanØtargetedmedia*co*uk) 627 * Bugfix: safe mode warnings in ImageCreateFromStringReplacement 628 (thanks adminØalex-home*net) 629 * Bugfix: nooffsitelink broken if !nooffsitelink_require_refer 630 (thanks depronØgmx*net) 631 * Bugfix: phpThumb failed when magic_quotes_runtime=true 632 (thanks stansawyerØyahoo*com) 633 * Bugfix: several issues with HTTP image sources 634 (thanks redrobØgmail*com) 635 * Bugfix: phpThumb_tempnam() would return incomplete temp filenames 636 under Windows, which may result in orphaned zero-byte temp files 637 in C:\ if multiple drives exist 638 639v1.6.2 - November 24, 2005 640 ¤ Animated GIF output is now possible if ImageMagick is 641 available and no filters (other than resize) are applied 642 (thanks brandenbassØgmail*com for idea) 643 * Added $PHPTHUMB_CONFIG['cache_force_passthru'] to work 644 around cached-image-only-works-second-time issue 645 (thanks yakoØ11y11*com) 646 * Bugfix: black borders on some image edges 647 (thanks atelierØdelirius*ch && chuckØcatalyststudio*com) 648 * Bugfix: uncaught PHP warning in RenderToFile DebugMessage 649 * Bugfix: allow phpThumbDebug in noGD PHP installations 650 * Bugfix: 'hash' warning in high_security mode 651 (thanks bernhardØwtf*at) 652 * Bugfix: non-TTF rotated text watermarks now work (unrotated) 653 with no warnings if ImageRotate is unavailable 654 (thanks aparviaiØusers*sourceforge*net) 655 656v1.6.1 - August 26, 2005 657 ¤ Filters now use GD functions where available (using 658 ImageFilter, only available in PHP v5.0.0+ with bundled 659 version of GD). Enabled for: colorize, negative, 660 grayscale, brightness, contrast, gaussian blur, selective 661 blur, mean removal (thanks donlaurØmac*com) 662 ¤ Added config_prefer_imagemagick (defaults=true) 663 ¤ Added phpthumb_filters::Grayscale() 'gray' 664 ¤ Added phpthumb_filters::ReduceColorDepth() 'rcd' 665 ¤ Added phpthumb_filters::Brightness() 'brit' 666 ¤ Added phpthumb_filters::Contrast() 'cont' 667 ¤ Added phpthumb_filters::Saturation() 'sat' 668 ¤ Added phpthumb_filters::EdgeDetect() 'edge' [PHP5 only] 669 ¤ Added phpthumb_filters::BlurGaussian() 'gblr' [PHP5 only] 670 ¤ Added phpthumb_filters::BlurSelective() 'gblr' [PHP5 only] 671 ¤ Added phpthumb_filters::MeanRemoval() 'mean' [PHP5 only] 672 ¤ Added phpthumb_filters::Smooth() 'smth' [PHP5 only] 673 * New timing debug info in phpThumbDebug 674 * Added config_cache_differentiate_offsite 675 * config_die_on_error now defaults to false 676 * ResolveSource works better 677 * cache filenames with 'fltr' parameters have changed 678 * Filters now skip processing if amount=0 or similar 679 * [#1263051] 'far' now accepts L,R,T,B,C as values giving 680 alignment of left/right/top/bottom/center respectively. 681 Old value of '1' defaults to centered 682 (thanks webgrappaØusers*sourceforge*net) 683 * Bugfix: RenderToFile() now fails properly when output format 684 is unknown 685 * Bugfix: PNG transparency wasn't working with 'far' 686 * Bugfix: source images with EXIF thumbnails that differ in 687 aspect ratio no longer use EXIF thumbnails as source unless 688 no other options exist 689 * Bugfix: setting 'src' with setParameter now invokes 690 setSourceFilename to properly set $this->sourceFilename 691 (thanks Gazou) 692 * Bugfix: 'zc' had poor quality when used with ImageMagick 693 * Bugfix: 'aoe' parameter broken when not using ImageMagick 694 (thanks frankieali4Øhotmail*com) 695 * Bugfix: fixed issue with symbolic links 696 (thanks hornet136Øgmail*com) 697 * Bugfix: config_max_source_pixels now defaults to same 698 calculation as used in phpThumb.config.php 699 (thanks vukshaØhotmail*com) 700 * Bugfix: Offsite cached thumbnails no longer use unique 701 referer (now either nothing or "_offsite") 702 (thanks swaayeØyahoo*com) 703 * Bugfix: "Unknown image type identified by “<?ph”" errors 704 in some installations (thanks frankieali4Øhotmail*com) 705 706v1.6.0 - July 18, 2005 707 ¤ Included new file phpThumb.demo.random.php to select a 708 random image from a specified folder, optionally only 709 landscape and/or portrait and/or square images, and to 710 display it to phpThumb.php 711 (thanks mikeØgdaymate*nl) 712 ¤ Added /docs/phpthumb.faq.txt 713 ¤ Added /demo/readme.demos.txt 714 ¤ Added 'wp', 'hp', 'wl', 'hl', 'ws', 'hs' parameters for 715 width and height of portrait, landscape and square 716 images. This allows you to display any image aspect 717 ratio at the size you want without knowing ahead of time 718 whether the image is wide or tall. 719 (thanks mikeØgdaymate*nl) 720 ¤ phpThumb.php can now also be called by passing parameters 721 in $_SERVER['PATH_INFO']. Please see phpthumb.readme.txt 722 (thanks javierØguegue*net) 723 ¤ MySQL data pulling configuration moved from phpThumb.php 724 to phpThumb.config.php 725 * "file" and "goto" parameters are now disabled by 726 default (configurable in phpThumb.config.php but not 727 recommended) 728 * Cached files are now used from first instance, avoiding 729 call to OutputThumbnail and preventing browser-side 730 cache failure 731 * Added config_allow_src_above_docroot (default=false) to 732 prevent browsing filesystem outside document_root 733 (thanks davidØint0x80*com) 734 * Added config_allow_src_above_phpthumb (default=true) to 735 prevent access to files except in subdirectories of 736 phpThumb installation (thanks davidØint0x80*com) 737 * Added setParameter() and getParameter() functions 738 (thanks werner*kraussØhallstatt*net) 739 * SafeBackTick() renamed to SafeExec() and all execution 740 functions are tried (exec, shell_exec, system, passthru) 741 are tried in case one or more are disabled 742 (thanks bkainersØgmail*com) 743 * config_output_allow_enlarging has been removed from 744 phpthumb.class.php, and 'output_allow_enlarging' has 745 been removed from phpThumb.config.php 746 * New default detection method for 747 $PHPTHUMB_CONFIG['document_root'] 748 * Bugfix: inconsitant handling of boolean parameters 749 passed "0" (isset vs !empty()) (thanks manniØzapto*de) 750 * Bugfix: text watermarks now support multiple lines 751 (thanks hanno*vandenbergØhccnet*nl) 752 * Bugfix: suppress error message in 753 ImageCreateFromStringReplacement() 754 (thanks srimandadapuØyahoo*com) 755 * Bugfix: 'aoe' was ignored in object mode 756 (thanks tonyØnylink*com) 757 * Bugfix: ResolveFilenameToAbsolute() failed on non- 758 existant filenames (file to be written, for example) 759 * Bugfix: 'aoe' parameter was ignored in cache filename 760 (thanks tonyØnylink*com) 761 * Bugfix: non-TTF watermark text had inverted opacity 762 scale. All 'wmt' is now 100=opaque, 0=transparent 763 (thanks mailØmmjaeger*com) 764 * Bugfix: cache file failed if document_root had 765 trailing slash. (thanks lovingloboØgmail*com) 766 * Bugfix: [#1219422] Cache filename structure modified to 767 avoid excessively long filenames (cache filenames are 768 now limited to 142 characters + length of 769 $_SERVER['SERVER_NAME']) 770 (thanks trungieØusers*sourceforge*net) 771 * Bugfix: [#1211729] phpThumb.php fails to locate 772 phpThumb.config.php if the two files are in the same 773 directory but phpThumb.php is run through a sym link. 774 (thanks allanbushØusers*sourceforge*net) 775 776v1.5.4 - May 27, 2005 777 * Security issue with passthrough addressed 778 (thanks davidØint0x80*com) 779 * 'wmt' now reads TTF fonts from the config font 780 directory, or from anywhere if a path is specified in 781 the font filename 782 (thanks mailØmmjaeger*com) 783 * Changed default error_die_on_source_failure to true in 784 phpThumb.config.php 785 * Bugfix: Firefox (possibly other browsers) did not like 786 the new (faster) cache retrieval method with Location 787 header redirection if the cached filename does not have 788 a recognized filename extension (.jpeg, .png, .gif). 789 Cached images have therefore been renamed from *_jpeg to 790 *.jpeg and the _qXX parameter has been removed for PNG 791 and GIF output. Please use the included cache renamer: 792 /demo/phpThumb.demo.cacheconvert2.php 793 (thanks mailØmmjaeger*com) 794 * Bugfix: Changed "Content-type" to "Content-Type" in all 795 header calls 796 * Bugfix: 'wmt' text opacity was broken 797 (thanks mstuhuØweb*de) 798 * Bugfix: variable name typo in phpThumb.demo.object.php 799 (thanks mbØmarko-bischof*de) 800 * Bugfix: no GD support for source image format now 801 reported as such for remote images 802 (thanks andgu842Østudent*liu*se) 803 * Bugfix: very narrow images no longer produce Invalid 804 Image Dimensions error (thanks mailØmmjaeger*com) 805 806v1.5.3 - May 4, 2005 807 ¤ Added new filters: 808 - 'wb' (White Balance) [ex: &fltr[]=wb|<c>] 809 where <c> is the target hex color to white balance 810 on, this color is what "should be" white, or light 811 gray. The filter attempts to maintain brightness so 812 any gray color can theoretically be used. If <c> is 813 omitted the filter guesses based on brightest pixels 814 in each of RGB 815 ¤ Cached files are used by a Location header instead of 816 being passed through phpThumb.php using readfile 817 (thanks newtnØthrillnerds*com) 818 * Added 'cache_source_filemtime_ignore_local' and 819 'cache_source_filemtime_ignore_remote' configurations 820 to ignore source modification and/or removal 821 (thanks raynerapeØgmail*com) 822 * Added 'md5s' parameter, which is the MD5 hash of the 823 source image -- if this parameter is passed with the 824 hash of the source image then the source image is not 825 checked for existance or modification and the cached 826 file is used (if available). If 'md5s' is passed an 827 empty string then phpThumb.php dies and outputs the 828 correct MD5 hash value. This parameter is the single- 829 file equivalent of 'cache_source_filemtime_ignore_*' 830 configuration paramters (thanks raynerapeØgmail*com) 831 * Added /demo/phpThumb.demo.object.php 832 * Unused parameter 'bgt' removed 833 * Added empty /cache/source/ directory to distribution 834 * Added /demo/ and /docs/ and /fonts/ directories 835 * Set default config_use_exif_thumbnail_for_speed = false 836 * Bugfix: Wrapped output buffering around all 837 include_once calls to prevent headers getting sent 838 accidentally 839 * Bugfix: md5_file and imagecolorallocatealpha calls 840 were undefined under PHP v4.1.x (thanks tomØemile*com) 841 * Bugfix: default 'f' parameter ('jpeg') overrode 842 config_output_format in object mode 843 (thanks mailØmmjaeger*com) 844 * Bugfix: suppressed error message for IIS shell_exec 845 errors (thanks tomØemile*com) 846 * Bugfix: Added PHP version check for stream_set_timeout 847 for HTTP sources (thanks raynerapeØgmail*com) 848 * Bugfix: overlay margins of 0.5-1.0 cause invalid image 849 dimensions error (thanks mailØmmjaeger*com) 850 * Bugfix: underlay margins were not working 851 (thanks mailØmmjaeger*com) 852 * Bugfix: [#1187735] EXIF thumbnails were incorrectly 853 output to the browser directly if requested thumbnail 854 exactly matched EXIF dimensions 855 (thanks rebootØusers*sourceforge*net) 856 857v1.5.2 - April 20, 2005 858 ¤ phpThumb.config.php is renamed to 859 phpThumb.config.php.default to prevent accidental 860 overwriting. Please migrate your old settings to the new 861 file, delete your old config and rename the default to 862 phpThumb.config.php 863 ¤ Added new filters: 864 - 'blur' (Blur) [ex: &fltr[]=blur|<radius>] 865 where (0 < <radius> < 25) (default = 1) 866 (thanks thoensiØnetcom*no for code) 867 - 'hist' (Histogram) 868 [ex: &fltr[]=hist|<b>|<c>|<w>|<h>|<a>|<o>|<m>] 869 Where <b> is the color band(s) to display, from back 870 to front (one or more of "rgba*" for Red Green Blue 871 Alpha and Grayscale respectively); 872 <c> is a semicolon-seperated list of hex colors to 873 use for each graph band (defaults to FF0000, 00FF00, 874 0000FF, 999999, FFFFFF respectively); 875 <w> and <h> are the width and height of the overlaid 876 histogram in pixels, or if <= 1 then percentage of 877 source image width/height; 878 <a> is the alignment (same as for "wmi" and "wmt"); 879 <o> is opacity from 0 to 100; 880 <m> is the edge (and inter-tile) margin in percent 881 - 'over' (OVERlay/underlay image) overlays an image on 882 the thumbnail, or overlays the thumbnail on another 883 image (to create a picture frame for example) 884 [ex: &fltr[]=over|<i>|<u>|<m>|<o>] 885 where <i> is the image filename; <u> is "0" (default) 886 for overlay the image on top of the thumbnail or "1" 887 for overlay the thumbnail on top of the image; <m> is 888 the margin - can be absolute pixels, or if < 1 is a 889 percentage of the thumbnail size [must be < 0.5] 890 (default is 0 for overlay and 10% for underlay); 891 <o> is opacity (0 = transparent, 100 = opaque) 892 (thanks raynerapeØgmail*com, shabazz3Ømsu*edu) 893 - 'gray' (GRAYscale) [ex: &fltr[]=gray] 894 is an alias to 100% desaturation 895 * New configuration 'cache_source_directory' allows the 896 unprocessed source image to be cached when source is 897 HTTP or from a database (thanks raynerapeØgmail*com) 898 * Added 'cache' subdirectory to phpThumb distribution 899 since this is the default location for the cache 900 folder. 901 * Default value for config_error_die_on_source_failure 902 changed to true (thanks shabazz3Ømsu*edu) 903 * Added checks to make sure $this->gdimg_output is a 904 resource before allowing calls to RenderToFile or 905 OutputThumbnail 906 * Better error messages when phpThumb.config.php missing 907 * Bugfix: watermark overlay margins were wrong 908 * Bugfix: 'lvl' filter no longer processes if not needed 909 * Bugfix: off-server thumbnail error message was wrong 910 * Bugfix: several PHP safe mode fixes 911 (thanks virginiaØalertbutnotalarmed*com) 912 * Bugfix: cache filenames broken for filter parameters 913 with paths (thanks srcericØusers.sourceforge.net) 914 915v1.5.1 - April 06, 2005 916 * Added some security upgrades: 917 - 'config_*' parameters cannot be passed by GETstring 918 - 'config_nooffsitelink_require_refer' is a new option 919 (disabled by default) that only allows calls to 920 phpThumb() from a refering domain listed in 921 'config_nooffsitelink_valid_domains' 922 - disallowed paramters now generate an error image if 923 present in the GETstring 924 - 'high_security_enabled' if set to true enabled new 925 mode of verification, and requires a small function 926 to generate a hash for calls to phpThumb: 927 echo '<img src="'.phpThumbURL('src=pic.jpg&w=50').'">'; 928 This function is supplied at the bottom of 929 phpThumb.config.php (thanks paulØstonie*co*uk) 930 ¤ Added new parameter "new" (phpThumb.php only) which can 931 create a new image without using "src" parameter. Set 932 "&new=<b>|<o>" where <b> is the background hex color, 933 <o> is (optional) opacity (0=transparent, 100=opaque). 934 (thanks mailØmmjaeger*com) 935 ¤ Added new filters: 936 - 'sep' (Sepia) [ex: &fltr[]=sep|<value>|<color>] 937 where <value> is a number between 0 and 100 for the 938 amount of colorization (default=50), and <color> is 939 the hex color to colorize to (default=A28065). 940 (thanks mailØmmjaeger*com) 941 - 'lvl' (Levels) [ex: &fltr[]=lvl|<channel>|<min>|<max> 942 where <channel> can be one of 'r', 'g', 'b', 'a' (for 943 Red, Green, Blue, Alpha respectively), or '*' for all 944 channels based on average grayscale value (default). 945 <min> and <max> are the clip points for the levels 946 (range = 0-255) and are set to clip 0.1% of each end 947 by default. Use -1 for min and/or max to invoke auto- 948 detect mode. Using default parameters (&fltr[]=lvl) 949 is similar to Auto Contrast in Adobe Photoshop. 950 * Bugfix: Image MIME header was incorrect for cached 951 images. 952 * Bugfix: Cache was broken for images pulled from a 953 database in phpThumb.php 954 (thanks dragutin*cvetkovicØdragontech-ltd*com) 955 * Bugfix: Hotlink/Offsite prevention was broken when 956 image was already cached. 957 * Bugfix: ImageMagick path was incorrect in some cases 958 (thanks joshgØtwcny*rr*com) 959 * Bugfix: ProportionalResize() in phpthumb.functions.php 960 had a broken check for default values 961 (thanks Bert*ClaeysØarinso*com) 962 * Bugfix: transparency now preserved for GIF & PNG input 963 (thanks tristanØcyrax*ch) 964 * Bugfix: transparency now supported for GIF output 965 (thanks j_ivanovØabv*bg) 966 * Bugfix: alpha transparency could be lost in ApplyMask() 967 (thanks analyzerxØgmail*com) 968 * Bugfix: errors on 16/32-bit BMPs 969 (thanks mattØhellstrominc*com) 970 * Bugfix: Added datestamp to cached filenames for remote 971 (HTTP) files, and better warning for caching 972 (thanks a*gambinoØabramo*it) 973 * Faster BMP parsing (thanks sgeppertØmail*utexas*edu) 974 * Added 'error_die_on_source_failure' configuration to 975 allow invalid source images to show an error rather 976 than output unmodified source image. 977 (thanks mindpixelØgmail*com) 978 * Added $phpThumb->fatalerror which will contain the 979 text of the fatal error if 'error_die_on_error' is 980 false. (thanks mindpixelØgmail*com) 981 982v1.5.0 - February 4, 2005 983 * Added new filter parameter 'fltr' that is an array and 984 can apply multiple effects in sequence. Current filters 985 that can be called are: 986 - 'gam' (Gamma Correction) [ex: &fltr[]=gam|<value>] 987 where <value> can be a number >0 to 10+ (default 1.0) 988 - 'ds' (DeSaturate) [ex: &fltr[]=ds|<value>] 989 where <value> is a number between zero (no change) 990 and 100 (complete desaturation -- grayscale), or it 991 can be a negative number for saturation boost. 992 (thanks mailØmmjaeger*com) 993 - 'clr' (Colorize) [ex: &fltr[]=clr|<value>|<color>] 994 where <value> is a number between 0 and 100 for the 995 amount of colorization, and <color> is the hex color 996 to colorize to. (thanks mailØmmjaeger*com) 997 - 'neg' (Negative) [ex: &fltr[]=neg] 998 inverts the color 999 - 'th' (ThresHold) [ex: &fltr[]=th|<val>] (range 0-255) 1000 every grayscale pixel brighter than <val> is set to 1001 white, every darker pixel is set to black 1002 (thanks mailØmmjaeger*com) 1003 - 'usm' (UnSharpMask) [ex: &fltr[]=usm|<a>|<r>|<t>] 1004 where <a> is the amount (default = 80), <r> is the 1005 radius (default = 0.5), <t> is the threshold 1006 (default = 3). 1007 - 'wmi' (WaterMarkImage) 1008 [ex: &fltr[]=wmi|<f>|<a>|<o>|<m>] where <f> is the 1009 filename of the image to overlay, <a> is the 1010 alignment (one of BR, BL, TR, TL, C, R, L, T, B, * 1011 where B=bottom, T=top, L=left, R=right, C=centre, 1012 *=tile), <o> is opacity from 0 to 100, <m> is the 1013 edge (and inter-tile) margin in percent 1014 - 'wmt' (WaterMarkText) 1015 [ex: &fltr[]=wmt|<t>|<s>|<a>|<c>|<f>|<o>|<m>|<n>] 1016 where: 1017 <t> is the text to use as a watermark, 1018 <s> is the font size (1-5 for built-in font, or point 1019 size for TrueType fonts), 1020 <a> is the alignment (one of BR, BL, TR, TL, C, R, L, 1021 T, B, * where B=bottom, T=top, L=left, R=right, 1022 C=centre, *=tile), 1023 <c> is the hex color of the text 1024 <f> is the filename of the TTF file (optional, if 1025 omitted a built-in font will be used) 1026 <o> is opacity from 0 to 100, 1027 <m> is the edge (and inter-tile) margin in percent 1028 <n> is the angle 1029 (thanks mailØmmjaeger*com) 1030 - 'flip' [ex: &fltr[]=flip|x or &fltr[]=flip|y] 1031 flip image on X or Y axis 1032 (thanks mailØmmjaeger*com) 1033 - 'elip' [ex: &fltr[]=elip] 1034 similar to rounded corners but more extreme 1035 (thanks mailØmmjaeger*com) 1036 - 'mask' [ex: &fltr[]=mask|filename.png] 1037 greyscale values of mask are applied as the alpha 1038 channel to the main image. White is opaque, black 1039 is transparent. 1040 - 'bvl' (BeVeL) [ex: &fltr[]=bvl|<w>|<c1>|<c2>] 1041 where <w> is the bevel width, <c1> is the hex color 1042 for the top and left shading, <c2> is the hex color 1043 for the bottom and right shading 1044 (thanks mailØmmjaeger*com) 1045 - 'fram' (FRAMe) draws a frame, similar to border but 1046 more configurable (thanks mailØmmjaeger*com) 1047 [ex: &fltr[]=fram|<w1>|<w2>|<c1>|<c2>|<c3>] 1048 where <w1> is the width of the main border, <w2> is 1049 the width of each side of the bevel part, <c1> is the 1050 hex color of the main border, <c2> is the highlight 1051 bevel color, <c3> is the shadow bevel color 1052 - 'drop' (DROP shadow) 1053 [ex: &fltr[]=drop|<d>|<w>|<clr>|<a>] 1054 where <d> is distance from image to shadow, <w> is 1055 width of shadow fade (not yet implemented), <clr> is 1056 the hex color of the shadow, and <a> is the angle of 1057 the shadow (default=225) 1058 - 'ric' (Rounded Image Corners) 1059 [ex: &fltr[]=ric|<x>|<y>] 1060 where <x> is the horizontal corner radius, 1061 <y> is the vertical corner radius 1062 * Split out filter functions into phpthumb.filters.php 1063 * 'usa','usr','ust' parameters have been removed and 1064 replaced with the 'fltr' call (see above) 1065 * 'wmf','wma','wmp','wmm' parameters have been removed 1066 and replaced with the 'fltr' call (see above) 1067 * 'brx','bry','bw' parameters have been removed 1068 and replaced with the 'fltr' call (see above) 1069 * 'bw=0' to force aspect ratio has been replaced by 1070 'far=1' (force aspect ratio) 1071 * Filters that produce transparent sections (such as 1072 Rounded Corners, Ellipse, Mask, Rotate) are now output 1073 as 32-bit/alpha PNG, or flattened with "bg" background 1074 color for JPEG/GIF output (thanks mailØmmjaeger*com) 1075 * Added 'zc' (Zoom Crop) parameter 1076 (thanks arcookeØgmail*com, mailØmmjaeger*com, 1077 pl16056Ømacnews*de, kezzasmØusers*sourceforge*net, etc) 1078 * AutoRotate now can use EXIF orientation tag ('ar=x') 1079 * Added 'ttf_directory' configuration parameter for 1080 TrueType watermarks (thanks mailØmmjaeger*com) 1081 * Added "Last-Modified" header to cache portion of 1082 phpThumb.php which should allow better user-side 1083 caching of thumbnails. (thanks derekØnetsimple*net) 1084 * Added 'cache_disable_warning' configuration which will 1085 cause an error image to be displayed if the cache 1086 directory isn't configured, unless explicitly disabled 1087 * Added 'nooffsitelink_enabled' configuration which 1088 prevents linking to thumbnails on your server from 1089 another domain. Defaults to watermaking linked images 1090 with text warning message. 1091 (thanks anteØabstraktmedia*com) 1092 * Added 'error_image_width' & 'error_image_height' 1093 config variables (thanks mailØmmjaeger*com) 1094 * Rounded image corners now requires GD v2.0.1 and PHP 1095 v4.3.2. Corners are transparent (for PNG output) and 1096 antialiased. 1097 * Rotate by arbitary angle ('ra') now has a transparent 1098 background for PNG output 1099 * Cached filenames now have an additional component for 1100 applied filters 1101 * Cached filenames now have an additional component for 1102 HTTP referer, but only if the refering domain does not 1103 match the domain of the server (designed to prevent 1104 imaged linked from offsite with error message being 1105 cached the same as the local cached version) 1106 * Added setSourceImageResource() to allow use of an 1107 existing GD image resource for thumbnailing 1108 (thanks danØgonmad*co*uk) 1109 * Now including phpThumb.demo.demo1.php (main demo page) 1110 and phpThumb.demo.demo2.php (configurable demo page) 1111 in the phpThumb() distribution 1112 (thanks mailØmmjaeger*com) 1113 * Added many more debugging/tracing message points 1114 * Added set_time_limit(30) to phpThumb.php 1115 * Bugfix: ImageMagick not used if `which convert` points 1116 to a link and not a file (thanks bkainersØgmail*com) 1117 * Bugfix: 'bgt' parameter was sometimes misspelled 'bct' 1118 * Bugfix: 'wmm' couldn't be set to zero 1119 * Bugfix: 'wmm' parameter was only applied to top/left of 1120 image 1121 * Bugfix: auto-detection of document_root failed on 1122 Windows (thanks xbartvØhotmail*com) 1123 * Bugfix: phpThumbDebug could be bypassed if EXIF 1124 thumbnail present (thanks olgradinØcheckfree*com) 1125 * Bugfix: cache file wasn't being written if EXIF data 1126 was used directly (thanks olgradinØcheckfree*com) 1127 * Bugfix: phpThumb.demo.showpic.php was broken by popup 1128 blockers for images larger than the screen. 1129 (thanks mailØmmjaeger*com) 1130 1131v1.4.11 - October 11, 2004 1132 * Changed sx/sy/sw/sh parameters to allow decimal values 1133 (>0 but <1) to represent percent of source image 1134 (thanks mordorØdefault*co*yu) 1135 * Added config_error_silent_die_on_error for no-output 1136 die on fatal errors (thanks johannesØformformat*se) 1137 * Added auto-detection of probable 'document_root' if 1138 that key is not available in $_SERVER 1139 * Bugfix: Check `which convert` failing with error 1140 message (thanks chadØchadshome*com) 1141 * Bugfix: Image cropping to invalid areas outside source 1142 image caused text output (thanks mordorØdefault*co*yu) 1143 1144v1.4.10 - August 22, 2004 1145 * Bugfix: cached files not written in most cases 1146 (thanks kizerØcourtkizer*com, snuffØinbox*ru) 1147 * Bugfix: ApacheLookupURIarray() crashes in CGI mode 1148 (thanks hanskrentelØyahoo*de) 1149 * Bugfix: phpthumb_bmpfile2gd() was broken 1150 (thanks iØmindlace*net) 1151 1152v1.4.9 - August 9, 2004 1153 * Bugfix: changed destination filename in RenderToFile() 1154 (thanks alextkØwalla*com) 1155 * Bugfix: problems with HTTP image source when called as 1156 an object (thanks alextkØwalla*com) 1157 1158v1.4.8 - August 4, 2004 1159 * $this->error has changed to $this->errors and is now 1160 an array of strings (instead of a single string) 1161 * A lot more error conditions (invalid cache directory, 1162 etc) are now reported in $this->errors 1163 (thanks aidan*slingsbyØlineone*net) 1164 * Removed all define(CONSTANT) in the phpThumb() 1165 constructor - you can now access: 1166 - PHPTHUMB_VERSION == $this->phpthumb_version; 1167 - PHPTHUMB_OSSLASH == $this->osslash; 1168 - PHPTHUMB_ISWINDOWS == $this->iswindows; 1169 * Bugfix: Error message from apache_lookup_uri() failing 1170 under Apache2 now reported cleanly 1171 (thanks derbaffØyahoo*com) 1172 * Bugfix: missing phpthumb_functions:: class name for 1173 ImageTypeToMIMEtype() call in ExtractEXIFgetImageSize() 1174 (thanks aidan*slingsbyØlineone*net) 1175 * Bugfix: ImageTypeToMIMEtype() was broken for PHP older 1176 than v4.3.0 (thanks georg*schreiberØbatch-pc*es) 1177 * Bugfix: RenderToFile() now returns false if it fails 1178 (thanks phpthumbØsendthemtomir*com) 1179 * Bugfix: Corrupt JPEG/PNG/GIF files that failed 1180 ImageCreateFrom*() were not being passed to ImageMagick 1181 for fallback, nor passed through unmodified if IM was 1182 unavailable or failed (thanks r*chongØmogenic*net) 1183 * Bugfix: Improved backtick safe-mode limit detection 1184 (thanks 1Øadamcarrington*com) 1185 * Bugfix: EXIF thumbnails were being used as source when 1186 they should not be (thanks aidan*slingsbyØlineone*net) 1187 * Bugfix: Cached files were not being created or used 1188 properly (thanks aidan*slingsbyØlineone*net) 1189 * Bugfix: max_source_pixels not set correct on some PHP 1190 versions (thanks derbaffØyahoo*com) 1191 * Bugfix: 'down' parameter ignored for unprocessed and 1192 cached files (thanks aidan*slingsbyØlineone*net) 1193 1194v1.4.7 - July 27, 2004 1195 * Included a modified version of "module.graphic.bmp.php" 1196 from getID3() [http://getid3.sourceforge.net] as 1197 "phpthumb.bmp.php" for BMP reading support without 1198 ImageMagick. It works, but it's *very* slow, especially 1199 for large images (as in 640x480 or larger). 1200 * Added check to prevent error messages when shell_exec 1201 is disabled (thanks webmasterØneester*com) 1202 1203v1.4.6 - July 22, 2004 1204 * Added new section to phpthumb.config.php where you can 1205 easily specify defaults for any parameter you can set 1206 in the URL. Normally URL parameters override these 1207 default values, unless you set 1208 $PHPTHUMB_DEFAULTS_GETSTRINGOVERRIDE to false 1209 * Renamed phpthumb.config.php to phpThumb.config.php 1210 since it's part of phpThumb.php, not part of 1211 phpthumb.class.php (change of case only, will not 1212 affect Windows servers, but will affect *nix) 1213 * Changed cached filename of rawImageData-source images 1214 from urlencode('') to md5(rawImageData). This should 1215 make caching thumbnails from non-file sources more 1216 reliable. 1217 * Added ImageMagick debugging information 1218 * Removed unneccesary default values from cached 1219 filenames. This may invalidate some previously cached 1220 files. phpthumb.demo.cacheconvert.php has been updated 1221 to handle v1.4.1-1.4.5 => v1.4.6+ cache filenames. 1222 * Bugfix: Cached filename did not have file-modified 1223 datestamp when used as implmented in phpThumb.php 1224 * Bugfix: RenderToFile() now accepts relative filenames 1225 (thanks aidan*slingsbyØlineone*net) 1226 * Bugfix: AllowOutputEnlargment setting was ignored when 1227 falling back to ImageMagick 1228 * Bugfix: IgnoreAspectRatio setting was ignored when 1229 falling back to ImageMagick 1230 * Bugfix: config_temp_directory was ignored in gd_info() 1231 in PHP < v4.3.0 when phpinfo() returns no GD 1232 information (due to safe mode restrictions) 1233 (thanks mimyrtekØmyrtek*com) 1234 1235v1.4.5 - June 28, 2004 1236 * Added new parameter 'down' where you can specify a 1237 filename and OutputThumbnail() will cause the file 1238 to be downloaded rather than displayed in the browser. 1239 Demo images on silisoftware.com/scripts/phpThumb/demo/ 1240 can all be downloaded to show off this feature. 1241 (thanks stuartscrumpØyahoo*co*uk) 1242 * Added ability to remove old files from cache directory 1243 based on last-access time and/or number of cached files 1244 and/or total size of cached files 1245 (thanks jrmhaigØyahoo*co*uk) 1246 * Added public CleanUpCacheDirectory() for cache cleaning 1247 (see above) if you need to call it manually 1248 * Included new file phpThumb.demo.cacheconvert.php to 1249 convert old-style cache names to the current (and 1250 hopefully last!) standard naming convention. 1251 (thanks joshgØtwcny*rr*com) 1252 * Added configuration value 'document_root' for rare case 1253 when $_SERVER['DOCUMENT_ROOT'] return incorrect value 1254 (thanks joshgØtwcny*rr*com) 1255 * Now tries to create thumbnail with ImageMagick if 1256 ImageCreateFromJPEG etc fails, before falling back to 1257 outputting unmodified source data. 1258 * Bugfix: HTTP image sources were broken 1259 (thanks fritz*weisshartØt-online*de) 1260 * Bugfix: ImageMagick callout wasn't being used if EXIF 1261 thumbnail was available 1262 (thanks joshgØtwcny*rr*com) 1263 * Bugfix: HTTP src with space in filename was broken 1264 (thanks drØrhodes360*com) 1265 * Bugfix: version_compare_replacement() was broken for 1266 PHP v4.1.0+ 1267 1268v1.4.4 - June 8, 2004 1269 * Bugfix: network-share (Windows) source filenames were 1270 not possible. Now works, but you must use the network 1271 name and not a mapped drive name, for example: 1272 \\othercomputer\file.jpg - good 1273 \\192.168.2.1\file.jpg - good 1274 z:\file.jpg - won't work 1275 This is a PHP limitation (see www.php.net/file-exists) 1276 Note: you may want to use "/" slashes instead of "\" if 1277 you have magic_quotes_gpc enabled to avoid stripslashes 1278 problems. 1279 (thanks drØrhodes360*com) 1280 * Bugfix: missing "phpthumb_functions::" in 1281 ImageCreateFromStringReplacement() 1282 (thanks zapletalØsoftwaremedia*cz) 1283 1284v1.4.3 - May 25, 2004 1285 * Added new configuration variable 'config_temp_directory' 1286 to allow you to specify a writable directory name for 1287 temp files if you do not have access to the system temp 1288 directory on your server (Safe Mode restrictions etc) 1289 (thanks nickØregenmag*com) 1290 * Added new configuration variable 1291 'config_error_die_on_error' which can be set to false if 1292 you want to retrieve the error message without having it 1293 dumped as an image - the error message is now available 1294 in $phpThumb->error 1295 * Images are passed through directly with no processing 1296 and no caching if no parameters are passed to alter the 1297 image (resize, crop, sharpening, etc) 1298 (thanks nchmuraØusers*sourceforge*net) 1299 * Added new configuration variable 'config_disable_debug' 1300 which disabled phpThumbDebug from working if you have 1301 security concerns about the displayed information 1302 * Bugfix: Added detection at the top of phpThumb.php for 1303 no-GD errors to avoid parse errors later in the code 1304 (thanks nickØregenmag*com) 1305 * Bugfix: RoundedImageCorners() had some off-by-1 errors 1306 (thanks ola*thunbergØhome*se) 1307 1308v1.4.2 - May 10, 2004 1309 * Added IE-compatability mode for transparent corners 1310 (set 'bct=256') 1311 * Bugfix: version_compare_replacement() was broken in PHP 1312 older than 4.1.0 1313 (thanks nickØregenmag*com) 1314 1315v1.4.1.1 - May 9, 2004 1316 * Bugfix: Removed ImageTrueColorToPalette hack. 1317 See http://bugs.php.net/bug.php?id=28341 1318 * Bugfix: 'maxb' option for PNG/GIF output incorrect 1319 bit depth under some circumstances 1320 1321v1.4.1 - May 9, 2004 1322 * Added 'maxb' (MAXimum Bytes) option to auto-set the 1323 output image quality (JPEG) or bit depth (PNG/GIF) so 1324 that the output thumbnail is less than 'maxb' bytes 1325 (thanks e_belleØhotmail*com) 1326 * Added 'bgt' parameter to make rounded corners from 1327 'brx'/'bry' option transparent when used with PNG 1328 output. Note: PHP/GD appears buggy at this time, so this 1329 option must force output to 256-color mode for this 1330 to work. The feature will be updated when a non-broken 1331 version of PHP/GD is released. 1332 (thanks javierØircorion*net) 1333 * Bugfix: Caching was broken 1334 (thanks mikeØgdaymate*nl, jurewiczØgo3*pl) 1335 1336v1.4.0 - April 30, 2004 1337 * Rewritten as a PHP class. Split into several files: 1338 - phpthumb.class.php = most processing code 1339 - phpthumb.functions.php = support functions 1340 - phpthumb.readme.txt = usage instructions 1341 - phpthumb.changelog.txt = this file 1342 - phpthumb.config.php = configuration file 1343 - phpthumb.gif.php = Non-GD GIF reading support 1344 - phpthumb.unsharp.php = Unsharp Masking support 1345 - phpThumb.php = demo script that works 1346 exactly as previous versions; this is a drop-in 1347 replacement for existing phpThumb() installations 1348 - phpThumb.demo.showpic.php = demo script that auto- 1349 resizes a popup window to the size of the image 1350 shown. Useful if you want popup images but do not 1351 know the large image size beforehand 1352 * Added optional call-out to ImageMagick (if avaible) if 1353 source image is larger than PHP memory restrictions 1354 allow. ImageMagick installation should be auto-detected 1355 under *nix, but you should configure 'imagemagick_path' 1356 for use under Windows. 1357 * 'max_source_pixels' is now auto-calculated from PHP 1358 configuration settings. Due to various server-level 1359 restrictions that may override PHP settings this 1360 calculated value may not always be correct, and you may 1361 have to specify the value manually. 1362 * Added rounded-corner border option. You must specify 1363 both 'brx' (horizontal radius) and 'bry' (vertical 1364 radius) as well as 'bw' (border width). If 'bw' is 1365 greater than zero, the image will be shrunk to fit 1366 inside the border with a margin of background color. 1367 If 'bw' is zero, the corners of the image will be 1368 cut off and filled with background color. 1369 (thanks javierØircorion*net) 1370 * Minor speed improvement for unsharp masking 1371 1372v1.3.7 - March 28, 2004 1373 * Bugfix: GD version detection was broken on PHP <4.3.0 1374 on servers where phpinfo() was disabled 1375 (thanks javierØircorion*net) 1376 * Bugfix: Non-GD GIF support was broken on restricted 1377 PHP configurations 1378 (thanks javierØircorion*net) 1379 * Bugfix: phpThumb.gif.php output error messages if PHP 1380 was running in Safe Mode 1381 * Added 'iar' parameter (Ignore Aspect Ratio) to allow 1382 non-proportional resizing (stretch image to fit). 1383 You must specify 'h' and 'w' to use this option. 1384 (thanks javierØircorion*net) 1385 1386v1.3.6 - March 14, 2004 1387 * Bugfix: was broken when register_globals turned on 1388 (thanks joshgØtwcny*rr*com) 1389 * Bugfix: Images with transparent backgrounds now have 1390 the background color filled with the color specified 1391 by the 'bg' parameter 1392 * Bugfix: ImageCreateFromString() is broken in the 1393 non-bundled GD. Added workaround, but please use 1394 the bundled version of GD if possible 1395 (thanks dnØxbe*ch) 1396 * Bugfix: EXIF thumbnail caching was broken 1397 * Bugfix: EXIF thumbnail handling was broken for PHP 1398 v4.2.x 1399 (thanks smithk1Øshaw*ca) 1400 * Bugfix: Image borders with GD2 were misaligned 1401 * Bugfix: virtual paths/filenames like /~user/foo.jpg 1402 should now work properly, if PHP is installed as an 1403 Apache module (see www.php.net/apache-lookup-uri) 1404 * Bugfix: contents of any non-image file could be 1405 displayed (including PHP & HTML files) 1406 (thanks arsyanØarsyan*com) 1407 * Added rotation parameters 'ra' and 'ar' 1408 (thanks drØrhodes360*com) 1409 * Added $CONFIG['output_allow_enlarging'], defaulted 1410 to false, to prevent smaller-than-max-size images 1411 from being enlarged beyond their original size. If 1412 you want to be able to enlarge images, set this to 1413 false. Can be overridden with the 'aoe' parameter 1414 (thanks dnØxbe*ch) 1415 * Changed all configuration variables to be under one 1416 array named $CONFIG 1417 * Moved color and font options for ErrorImage() to 1418 $CONFIG variables 1419 * Changed cached filename structure (again) to a more 1420 flexible format that can handle future expansion 1421 (old cached files are invalid and will be recreated) 1422 * Added more debugging code to phpThumbDebug 1423 1424v1.3.5 - February 29, 2004 1425 * Added capability to use EXIF thumbnail that may be 1426 embedded in source image (often is in digital camera 1427 JPEGs) and source image dimensions are larger than 1428 $config_max_source_pixels. This will overcome the 1429 limitation where PHP runs out of memory processing 1430 large images (usually >1600x1200). EXIF thumbnail 1431 extraction requires PHP v4.2.0 or higher and EXIF 1432 support compiled into PHP (or php_exif extension) 1433 * Eliminated intermediate read-file-to-memory stage if 1434 image is created from local file. Should allow 1435 larger images to be processed without running out of 1436 memory. 1437 * Added optional 'goto' parameter to be used with the 1438 'file' parameter, where 'goto' is a URL that is 1439 redirected to after image is rendered to file 1440 (thanks wimbleØwebdonors*com) 1441 * Added optional 'xto' parameter that will bypass all 1442 processing and just return the embedded EXIF 1443 thumbnail, if available. 1444 * Added error-handling if ImageTypes() is unavailable 1445 1446v1.3.4 - February 15, 2004 1447 * Custom error image option (&err=img.jpg) which can 1448 also be set as $config_error_message_image_default 1449 (thanks carlØ4thstar*net) 1450 * &f=text will now output plain-text error messages 1451 * ErrorImage() now used for anti-hotlink messages (if 1452 $config_nohotlink_erase_image is true) 1453 1454v1.3.3 - February 5, 2004 1455 * Bugfix: Added stripslashes() to filenames if 1456 magic_quotes_gpc is enabled 1457 (thanks arsyanØarsyan*com) 1458 * Output can now be rendered to a file only (not to 1459 browser) specified by the 'file' parameter 1460 (thanks arsyanØarsyan*com) 1461 * JPEG quality now has a maximum of 95%, as specified 1462 in the GD documentation 1463 1464v1.3.2.1 - February 3, 2004 1465 * Bugfix: gd_version() was broken for GD v2.0+ 1466 * Bugfix: removed debugging code 1467 1468v1.3.2 - February 3, 2004 1469 * Bugfix: when borders are enabled, portait images 1470 with no width constraint, or landscape images with 1471 no height constraint were smaller than neccesary by 1472 double the border width 1473 (thanks jjjØxs4all*nl) 1474 * Added unsharp mask option thanks to Torstein Hønsi: 1475 http://www.vikjavev.com/hovudsida/umtestside.php 1476 Note: requires GD v2.x to function 1477 (thanks jjjØxs4all*nl) 1478 * Updated cache filenames to reflect new parameters, 1479 this means old cached files will need to be deleted 1480 (or not, they just will never get called again) and 1481 new cached versions will be created. 1482 * Added caching to gd_info() calls for minor speedup 1483 1484v1.3.1 - February 2, 2004 1485 * Added optional border (width and color configurable) 1486 (thanks arsyanØarsyan*com) 1487 * Added option to create fixed-dimension thumbnails 1488 regardless of source aspect ration. Set the 'bw' 1489 (BorderWidth) parameter (even to 0) and this will be 1490 enabled. Outside the actual image will be filled 1491 with 'bg' color (default FFFFFF) 1492 (thanks arsyanØarsyan*com) 1493 1494v1.3.0 - January 27, 2004 1495 * Added watermarking option to overlay thumbnails with 1496 a semi-transparent watermark image (copied from a 1497 seperate source watermark image) 1498 (thanks arsyanØarsyan*com) 1499 * Added option for absolute filenames (on both Windows 1500 and *nix) outside the DOCUMENT_ROOT directory 1501 * Added debug output dump for diagnosing problems) 1502 1503v1.2.8 - January 19, 2004 1504 * added ability to specify relative pathnames as well 1505 as absolute pathnames (pathname is relative to the 1506 location of phpThumb.php if the passed source does 1507 not begin with "/" 1508 1509v1.2.7 - January 7, 2004 1510 * Added patch to allow use of PHP older than 4.1.0 1511 (or GD without PNG support) for non-GD GIF support 1512 (thanks hostwebserverØhotmail*com) 1513 1514v1.2.6 - January 4, 2004 1515 * Added patch to allow use of PHP older than 4.1.0 1516 (without the superglobals arrays) 1517 1518v1.2.5 - December 26, 2003 1519 * Added configuration options for default output image 1520 format and max width/height 1521 1522v1.2.4 - December 20, 2003 1523 * Bugfix: temp directory for non-native GD support not 1524 always returning valid directory 1525 * Caching feature reintroduced (see configuration) 1526 1527v1.2.3 - December 19, 2003 1528 * Added anti-hotlink code so the thumbnail script on 1529 one domain cannot be used by another domain. The 1530 list of allowed domains defaults to the current 1531 domain but is configurable below as 1532 $config_nohotlink_valid_domains. The message, text 1533 size, colors and whether to blank the image or not 1534 are also configurable 1535 * Bugfix: URL image sources were not able to use the 1536 non-GD GIF-reading functions 1537 1538v1.2.2 - December 17, 2003 1539 * Added option to use http:// URL as image source 1540 1541v1.2.1 - December 11, 2003 1542 * Added option to get source data from a database 1543 rather than a physical file 1544 * Bugfix: resize not proportional when wide image 1545 limited more by max height than max width 1546 Thanks mathias_strasserØgmx*net 1547 * Removed caching code 1548 1549v1.2.0 - December 10, 2003 1550 * Added GIF support for versions of GD that do not 1551 have built-in GIF support (v1.6.x) via the "GIF 1552 Util" class by Fabien Ezber (www.yamasoft.com) 1553 GD's built-in GIF-reading functions are faster, and 1554 are present in PHP v4.3.0 or newer, but all versions 1555 of GD can display resized GIF thumbnails now. 1556 1557v1.1.2 - October 26, 2003 1558 * check for source image existance to prevent text 1559 error messages 1560 * if GD not available, a GIF saying "no GD" is shown 1561 instead of showing the original image 1562 * Cache feature introduced 1563 1564v1.1.1 - September 28, 2003 1565 * better resize code by sfisher10Øcox*net 1566 1567v1.1.0 - September 1, 2003 1568 * initial public release 1569 * thumbnails can now be larger than source image 1570 * graphical error messages 1571 1572v1.0.0 - January 7, 2002 1573 * initial private release 1574