[COLOR=#990000]<?php[/color]
[i][COLOR=#9A1900]/*[/color][/i]
[i][COLOR=#9A1900] * when you are serving your image tag do this[/color][/i]
[i][COLOR=#9A1900] * echo getImageTag(20101, 200, 200); to output a tag for the imageID 20101 with a maxheight and width of 200 px[/color][/i]
[i][COLOR=#9A1900] */[/color][/i]
[i][COLOR=#9A1900]//deal with old calls[/color][/i]
[b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]basename[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$_SERVER[/color][COLOR=#990000][[/color][COLOR=#FF0000]'REQUEST_URI'[/color][COLOR=#990000]])[/color] [COLOR=#990000]==[/color] [b][COLOR=#0000FF]__FILE__[/color][/b] [COLOR=#990000])[/color][COLOR=#FF0000]{[/color]
[tab][COLOR=#009900]$imageID[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$_GET[/color][COLOR=#990000][[/color][COLOR=#FF0000]'imnam'[/color][COLOR=#990000]];[/color]
[tab][COLOR=#009900]$bits[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]explode[/color][/b][COLOR=#990000]([/color][COLOR=#FF0000]'/'[/color][COLOR=#990000],[/color] [COLOR=#009900]$imageID[/color][COLOR=#990000]);[/color]
[tab][COLOR=#009900]$imageID[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]end[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$imageID[/color][COLOR=#990000]);[/color]
[tab][COLOR=#009900]$imageID[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]explode[/color][/b][COLOR=#990000]([/color][COLOR=#FF0000]'.'[/color][COLOR=#990000],[/color] [COLOR=#009900]$imageID[/color][COLOR=#990000]);[/color]
[tab][COLOR=#009900]$imageID[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$imageID[/color][COLOR=#990000][[/color][COLOR=#993399]0[/color][COLOR=#990000]];[/color]
[tab][COLOR=#009900]$i[/color] [COLOR=#990000]=[/color] [b][COLOR=#0000FF]new[/color][/b] [b][COLOR=#000000]image[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$imageID[/color][COLOR=#990000]);[/color]
[tab][COLOR=#009900]$i[/color][COLOR=#990000]->[/color][b][COLOR=#000000]serve[/color][/b][COLOR=#990000]();[/color]
[COLOR=#FF0000]}[/color]
[b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]getImageTag[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$imageID[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000])[/color][COLOR=#FF0000]{[/color]
[tab][COLOR=#009900]$i[/color] [COLOR=#990000]=[/color] [b][COLOR=#0000FF]new[/color][/b] [b][COLOR=#000000]image[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$imageID[/color][COLOR=#990000]);[/color]
[tab][b][COLOR=#0000FF]return[/color][/b] [COLOR=#009900]$i[/color][COLOR=#990000]->[/color][b][COLOR=#000000]getImgTag[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000]);[/color]
[COLOR=#FF0000]}[/color]
[b][COLOR=#0000FF]class[/color][/b] image[COLOR=#FF0000]{[/color]
[tab]
[tab][i][COLOR=#9A1900]//change this to the relative path from this file to the image cache directory.[/color][/i]
[tab]
[tab]private [COLOR=#009900]$cacheDir[/color] [COLOR=#990000]=[/color] [COLOR=#FF0000]'imageCacheDir/'[/color][COLOR=#990000];[/color] [i][COLOR=#9A1900]//don't forget trailing slash[/color][/i]
[tab]
[tab][i][COLOR=#9A1900]//change this to the relative path from this file to the image directory. don't forget the trailing slash[/color][/i]
[tab]private [COLOR=#009900]$imageDir[/color] [COLOR=#990000]=[/color] [COLOR=#FF0000]'images/'[/color][COLOR=#990000];[/color]
[tab]
[tab][i][COLOR=#9A1900]//change this to the web accessible path to the image cache directory. don't forget the trailing slash.[/color][/i]
[tab]private [COLOR=#009900]$cacheRoot[/color] [COLOR=#990000]=[/color] [COLOR=#FF0000]'[URL unfurl="true"]http://somedomain.com/imagecachedir/'[/URL][/color][COLOR=#990000];[/color]
[tab]
[tab][i][COLOR=#9A1900]//this determines how quickly unused cache files are deleted[/color][/i]
[tab]private [COLOR=#009900]$gc[/color] [COLOR=#990000]=[/color] [COLOR=#993399]2592000[/color][COLOR=#990000];[/color] [i][COLOR=#9A1900]//30 days;[/color][/i]
[tab]
[tab][i][COLOR=#9A1900]//change this to point to absolute url of the owlmark[/color][/i]
[tab]private [COLOR=#009900]$owlmark[/color] [COLOR=#990000]=[/color] [COLOR=#FF0000]'owlmark.png'[/color][COLOR=#990000];[/color]
[tab]
[tab]public [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]__construct[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$imageID[/color] [COLOR=#990000]=[/color] NULL[COLOR=#990000])[/color][COLOR=#FF0000]{[/color]
[tab][tab][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]imageID [COLOR=#990000]=[/color] [COLOR=#009900]$imageID[/color][COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]public [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]getImgTag[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000])[/color][COLOR=#FF0000]{[/color]
[tab][tab][COLOR=#009900]$file[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color][b][COLOR=#000000]isCached[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#0000FF]if[/color][/b] [COLOR=#990000](![/color][COLOR=#009900]$file[/color][COLOR=#990000]):[/color]
[tab][tab][tab][COLOR=#009900]$file[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color][b][COLOR=#000000]cache[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000]);[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000](![/color][COLOR=#009900]$file[/color][COLOR=#990000])[/color] [b][COLOR=#0000FF]return[/color][/b] false[COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]endif[/color][/b][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]return[/color][/b] [COLOR=#FF0000]"<img src=\"{$this->cacheRoot} . $file\"/>"[/color][COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]public [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]serve[/color][/b] [COLOR=#990000]()[/color][COLOR=#FF0000]{[/color]
[tab][tab][COLOR=#009900]$maxHeight[/color] [COLOR=#990000]=[/color] [b][COLOR=#0000FF]isset[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$_GET[/color][COLOR=#990000][[/color][COLOR=#FF0000]'maxhi'[/color][COLOR=#990000]])[/color] [COLOR=#990000]?[/color] [COLOR=#009900]$_GET[/color][COLOR=#990000][[/color][COLOR=#FF0000]'maxhi'[/color][COLOR=#990000]][/color] [COLOR=#990000]:[/color] false[COLOR=#990000];[/color]
[tab][tab][COLOR=#009900]$maxWidth[/color] [COLOR=#990000]=[/color][tab] [b][COLOR=#0000FF]isset[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$_GET[/color][COLOR=#990000][[/color][COLOR=#FF0000]'maxwid'[/color][COLOR=#990000]])[/color] [COLOR=#990000]?[/color] [COLOR=#009900]$_GET[/color][COLOR=#990000][[/color][COLOR=#FF0000]'maxwid'[/color][COLOR=#990000]][/color] [COLOR=#990000]:[/color] false[COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]if[/color][/b] [COLOR=#990000]([/color]true [COLOR=#990000]==[/color] [COLOR=#990000]([/color][COLOR=#009900]$file[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color][b][COLOR=#000000]isCached[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000]))[/color] [COLOR=#990000]):[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000](![/color][b][COLOR=#000000]headers_sent[/color][/b][COLOR=#990000]()):[/color]
[tab][tab][tab][tab][b][COLOR=#000000]header[/color][/b][COLOR=#990000]([/color][COLOR=#FF0000]"Location: "[/color] [COLOR=#990000].[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheRoot [COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000]);[/color]
[tab][tab][tab][b][COLOR=#0000FF]endif[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][b][COLOR=#000000]touch[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$file[/color][COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#0000FF]endif[/color][/b][COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]private [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]isCached[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000])[/color][COLOR=#FF0000]{[/color]
[tab][tab][b][COLOR=#0000FF]return[/color][/b] [b][COLOR=#000000]file_exists[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]imageID [COLOR=#990000].[/color] [COLOR=#FF0000]"_"[/color] [COLOR=#990000].[/color] [COLOR=#009900]$maxHeight[/color] [COLOR=#990000].[/color] [COLOR=#FF0000]"_"[/color] [COLOR=#990000].[/color] [COLOR=#009900]$maxWidth[/color] [COLOR=#990000].[/color] [COLOR=#FF0000]'.jpg'[/color][COLOR=#990000])[/color] [COLOR=#990000]?[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]imageID [COLOR=#990000].[/color] [COLOR=#FF0000]"_"[/color] [COLOR=#990000].[/color] [COLOR=#009900]$maxHeight[/color] [COLOR=#990000].[/color] [COLOR=#FF0000]"_"[/color] [COLOR=#990000].[/color] [COLOR=#009900]$maxWidth[/color] [COLOR=#990000].[/color][COLOR=#FF0000]'.jpg'[/color][COLOR=#990000]:[/color] false[COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]private [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]garbageCollect[/color][/b][COLOR=#990000]()[/color][COLOR=#FF0000]{[/color]
[tab][tab][b][COLOR=#000000]clearstatcache[/color][/b][COLOR=#990000]();[/color]
[tab][tab][COLOR=#009900]$dh[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]opendir[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir[COLOR=#990000]);[/color]
[tab][tab][COLOR=#009900]$t[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]time[/color][/b][COLOR=#990000]();[/color]
[tab][tab][b][COLOR=#0000FF]while[/color][/b] [COLOR=#990000]([/color]FALSE [COLOR=#990000]!==[/color] [COLOR=#990000]([/color][COLOR=#009900]$file[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]readdir[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$dh[/color][COLOR=#990000]))):[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]substr[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$file[/color][COLOR=#990000],[/color] [COLOR=#993399]0[/color][COLOR=#990000],[/color] [COLOR=#993399]1[/color][COLOR=#990000])[/color] [COLOR=#990000]==[/color] [COLOR=#FF0000]'.'[/color][COLOR=#990000])[/color] [b][COLOR=#0000FF]continue[/color][/b][COLOR=#990000];[/color] [i][COLOR=#9A1900]//ignore directories[/color][/i]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]is_dir[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000]))[/color] [b][COLOR=#0000FF]continue[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b] [COLOR=#990000](![/color][b][COLOR=#000000]is_file[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000]))[/color] [b][COLOR=#0000FF]continue[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]filetype[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000])[/color] [COLOR=#990000]!==[/color] [COLOR=#FF0000]'file'[/color][COLOR=#990000])[/color] [b][COLOR=#0000FF]continue[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][COLOR=#009900]$parts[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]pathinfo[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir[COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000]);[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000](![/color][b][COLOR=#000000]in_array[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]strtolower[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$parts[/color][COLOR=#990000][[/color][COLOR=#FF0000]'extension'[/color][COLOR=#990000]],[/color] [b][COLOR=#0000FF]array[/color][/b][COLOR=#990000]([/color][COLOR=#FF0000]'jpg'[/color][COLOR=#990000],[/color][COLOR=#FF0000]'jpeg'[/color][COLOR=#990000],[/color][COLOR=#FF0000]'bmp'[/color][COLOR=#990000],[/color][COLOR=#FF0000]'png'[/color][COLOR=#990000],[/color][COLOR=#FF0000]'ico'[/color][COLOR=#990000]))))[/color] [b][COLOR=#0000FF]continue[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]fileatime[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000])[/color] [COLOR=#990000]+[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]gc [COLOR=#990000]>[/color] [COLOR=#009900]$t[/color] [COLOR=#990000])[/color] [b][COLOR=#0000FF]continue[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][COLOR=#009900]@unlink[/color][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$file[/color][COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#0000FF]endwhile[/color][/b][COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]public [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]__destruct[/color][/b][COLOR=#990000]()[/color][COLOR=#FF0000]{[/color]
[tab][tab][COLOR=#009900]$this[/color][COLOR=#990000]->[/color][b][COLOR=#000000]garbageCollect[/color][/b][COLOR=#990000]();[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]private [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]cache[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000],[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000])[/color][COLOR=#FF0000]{[/color]
[tab][tab]
[tab][tab][COLOR=#009900]$original[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color][b][COLOR=#000000]getOriginal[/color][/b][COLOR=#990000]();[/color]
[tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000](![/color][COLOR=#009900]$original[/color][COLOR=#990000])[/color] [b][COLOR=#0000FF]return[/color][/b] false[COLOR=#990000];[/color]
[tab][tab]
[tab][tab][i][COLOR=#9A1900]/*[/color][/i]
[i][COLOR=#9A1900][tab][tab] * get scales[/color][/i]
[i][COLOR=#9A1900][tab][tab] */[/color][/i]
[tab][tab][b][COLOR=#0000FF]list[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$width[/color][COLOR=#990000],[/color] [COLOR=#009900]$height[/color][COLOR=#990000],[/color] [COLOR=#009900]$type[/color][COLOR=#990000],[/color] [COLOR=#009900]$attr[/color][COLOR=#990000])[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]getimagesize[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$original[/color] [COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color] [COLOR=#990000]==[/color] [COLOR=#993399]0[/color] [COLOR=#990000]||[/color] [COLOR=#009900]$maxWidth[/color] [COLOR=#990000]==[/color] [COLOR=#993399]0[/color][COLOR=#990000]):[/color]
[tab][tab][tab][COLOR=#009900]$height[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$maxHeight[/color][COLOR=#990000];[/color]
[tab][tab][tab][COLOR=#009900]$width[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$maxWidth[/color][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]else[/color][/b][COLOR=#990000]:[/color]
[tab][tab][tab][b][COLOR=#0000FF]if[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$height[/color] [COLOR=#990000]>[/color] [COLOR=#009900]$width[/color][COLOR=#990000]):[/color]
[tab][tab][tab][tab][COLOR=#009900]$newHeight[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$maxHeight[/color] [COLOR=#990000]<[/color] [COLOR=#009900]$height[/color] [COLOR=#990000]?[/color] [b][COLOR=#000000]round[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxHeight[/color][COLOR=#990000])[/color] [COLOR=#990000]:[/color] [b][COLOR=#000000]round[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$height[/color][COLOR=#990000]);[/color]
[tab][tab][tab][tab][COLOR=#009900]$newWidth[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]round[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$width[/color] [COLOR=#990000]*[/color] [COLOR=#990000]([/color][COLOR=#009900]$newHeight[/color][COLOR=#990000]/[/color][COLOR=#009900]$height[/color][COLOR=#990000])[/color] [COLOR=#990000]);[/color]
[tab][tab][tab][b][COLOR=#0000FF]else[/color][/b][COLOR=#990000]:[/color]
[tab][tab][tab][tab][COLOR=#009900]$newWidth[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$maxWidth[/color] [COLOR=#990000]<[/color] [COLOR=#009900]$width[/color] [COLOR=#990000]?[/color] [b][COLOR=#000000]round[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$maxWidth[/color][COLOR=#990000])[/color] [COLOR=#990000]:[/color] [b][COLOR=#000000]round[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$width[/color][COLOR=#990000]);[/color]
[tab][tab][tab][tab][COLOR=#009900]$newHeight[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]round[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$height[/color] [COLOR=#990000]*[/color] [COLOR=#990000]([/color][COLOR=#009900]$newWidth[/color][COLOR=#990000]/[/color][COLOR=#009900]$width[/color][COLOR=#990000]));[/color]
[tab][tab][tab][b][COLOR=#0000FF]endif[/color][/b][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]endif[/color][/b][COLOR=#990000];[/color]
[tab][tab]
[tab][tab][i][COLOR=#9A1900]/*[/color][/i]
[i][COLOR=#9A1900][tab][tab] * create source image;[/color][/i]
[i][COLOR=#9A1900][tab][tab] */[/color][/i]
[tab][tab][b][COLOR=#0000FF]switch[/color][/b] [COLOR=#990000]([/color][COLOR=#009900]$type[/color][COLOR=#990000]):[/color]
[tab][tab][tab][b][COLOR=#0000FF]case[/color][/b] IMAGETYPE_JPEG[COLOR=#990000]:[/color]
[tab][tab][tab][tab][COLOR=#009900]$src_img[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]imagecreatefromjpeg[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$original[/color] [COLOR=#990000]);[/color]
[tab][tab][tab][tab][b][COLOR=#0000FF]break[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][b][COLOR=#0000FF]case[/color][/b] IMAGETYPE_PNG[COLOR=#990000]:[/color]
[tab][tab][tab][tab][COLOR=#009900]$src_img[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]imagecreatefrompng[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$original[/color] [COLOR=#990000]);[/color]
[tab][tab][tab][tab][b][COLOR=#0000FF]break[/color][/b][COLOR=#990000];[/color]
[tab][tab][tab][b][COLOR=#0000FF]default[/color][/b][COLOR=#990000]:[/color]
[tab][tab][tab][tab][b][COLOR=#0000FF]die[/color][/b][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]endswitch[/color][/b][COLOR=#990000];[/color]
[tab]
[tab][tab][i][COLOR=#9A1900]/*[/color][/i]
[i][COLOR=#9A1900][tab][tab] * create resampled image[/color][/i]
[i][COLOR=#9A1900][tab][tab] */[/color][/i]
[tab][tab][COLOR=#009900]$thumb[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]imagecreatetruecolor[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$newWidth[/color][COLOR=#990000],[/color][COLOR=#009900]$newHeight[/color][COLOR=#990000]);[/color]
[tab][tab][COLOR=#009900]$grey[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]imagecolorallocate[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$thumb[/color][COLOR=#990000],[/color] [COLOR=#993399]201[/color][COLOR=#990000],[/color] [COLOR=#993399]201[/color][COLOR=#990000],[/color] [COLOR=#993399]201[/color][COLOR=#990000]);[/color]
[tab][tab][COLOR=#009900]$white[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]imagecolorallocate[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$thumb[/color][COLOR=#990000],[/color] [COLOR=#993399]255[/color][COLOR=#990000],[/color] [COLOR=#993399]255[/color][COLOR=#990000],[/color] [COLOR=#993399]255[/color][COLOR=#990000]);[/color]
[tab][tab][COLOR=#009900]$offse[/color][COLOR=#990000]=[/color][COLOR=#993399]4[/color][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#000000]imagecopyresampled[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$thumb[/color][COLOR=#990000],[/color] [COLOR=#009900]$src_img[/color][COLOR=#990000],[/color] [COLOR=#993399]0[/color][COLOR=#990000],[/color][COLOR=#993399]0[/color][COLOR=#990000],[/color][COLOR=#993399]0[/color][COLOR=#990000],[/color][COLOR=#993399]0[/color][COLOR=#990000],([/color][COLOR=#009900]$newWidth[/color][COLOR=#990000]),([/color][COLOR=#009900]$newHeight[/color][COLOR=#990000]),[/color][COLOR=#009900]$width[/color][COLOR=#990000],[/color] [COLOR=#009900]$height[/color][COLOR=#990000]);[/color]
[tab][tab][COLOR=#009900]$im[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]imagecreatefrompng[/color][/b][COLOR=#990000]([/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]owlMark [COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#000000]imagecopymerge[/color][/b] [COLOR=#990000]([/color][COLOR=#009900]$thumb[/color] [COLOR=#990000],[/color] [COLOR=#009900]$im[/color] [COLOR=#990000],[/color] [COLOR=#993399]0[/color] [COLOR=#990000],[/color] [COLOR=#993399]0[/color] [COLOR=#990000],[/color] [COLOR=#993399]0[/color] [COLOR=#990000],[/color] [COLOR=#993399]0[/color] [COLOR=#990000],[/color] [COLOR=#993399]250[/color] [COLOR=#990000],[/color] [COLOR=#993399]250[/color] [COLOR=#990000],[/color] [COLOR=#993399]20[/color] [COLOR=#990000]);[/color]
[tab][tab]
[tab][tab][i][COLOR=#9A1900]/*[/color][/i]
[i][COLOR=#9A1900][tab][tab] * save image[/color][/i]
[i][COLOR=#9A1900][tab][tab] */[/color][/i]
[tab][tab][COLOR=#009900]$return[/color] [COLOR=#990000]=[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]cacheDir [COLOR=#990000].[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]imageID [COLOR=#990000].[/color] [COLOR=#FF0000]"_{$maxHeight}_{$maxWidth}.jpg"[/color][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#000000]imagejpeg[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$thumb[/color][COLOR=#990000],[/color] [COLOR=#009900]$return[/color][COLOR=#990000]);[/color]
[tab][tab]
[tab][tab][i][COLOR=#9A1900]/*[/color][/i]
[i][COLOR=#9A1900][tab][tab] * clean up[/color][/i]
[i][COLOR=#9A1900][tab][tab] */[/color][/i]
[tab][tab][b][COLOR=#000000]imagedestroy[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$thumb[/color][COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#000000]imagedestroy[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$im[/color][COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#000000]imagedestroy[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$src_img[/color][COLOR=#990000]);[/color]
[tab][tab][b][COLOR=#0000FF]return[/color][/b] [COLOR=#009900]$return[/color][COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[tab]
[tab]private [b][COLOR=#0000FF]function[/color][/b] [b][COLOR=#000000]getOriginal[/color][/b][COLOR=#990000]()[/color][COLOR=#FF0000]{[/color]
[tab][tab][COLOR=#009900]$matches[/color] [COLOR=#990000]=[/color] [b][COLOR=#000000]glob[/color][/b][COLOR=#990000]([/color][b][COLOR=#000000]realpath[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$this[/color][COLOR=#990000]->[/color]imageDir[COLOR=#990000])[/color] [COLOR=#990000].[/color] [COLOR=#009900]$this[/color][COLOR=#990000]->[/color]imageID [COLOR=#990000].[/color] [COLOR=#FF0000]".*"[/color][COLOR=#990000]);[/color]
[tab][tab][i][COLOR=#9A1900]//just get the first one[/color][/i]
[tab][tab][b][COLOR=#0000FF]if[/color][/b] [COLOR=#990000]([/color][b][COLOR=#0000FF]isset[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$matches[/color][COLOR=#990000][[/color][COLOR=#993399]0[/color][COLOR=#990000]])[/color] [COLOR=#990000]&&[/color] [COLOR=#990000]![/color][b][COLOR=#0000FF]empty[/color][/b][COLOR=#990000]([/color][COLOR=#009900]$matches[/color][COLOR=#990000][[/color][COLOR=#993399]0[/color][COLOR=#990000]])):[/color]
[tab][tab][tab][b][COLOR=#0000FF]return[/color][/b] [COLOR=#009900]$matches[/color][COLOR=#990000][[/color][COLOR=#993399]0[/color][COLOR=#990000]];[/color]
[tab][tab][b][COLOR=#0000FF]endif[/color][/b][COLOR=#990000];[/color]
[tab][tab][b][COLOR=#0000FF]return[/color][/b] false[COLOR=#990000];[/color]
[tab][COLOR=#FF0000]}[/color]
[COLOR=#FF0000]}[/color]
[COLOR=#990000]?>[/color]