imagethumbnail_dropshadow

Small, short code snippets that other people may find useful. Do you have a good regex that you would like to share? Share it! Even better, the code can be commented on, and improved.

Moderator: General Moderators

Post Reply
User avatar
onion2k
Jedi Mod
Posts: 5263
Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com

imagethumbnail_dropshadow

Post by onion2k »

Another extension to my imagethumbnail class .. this time for dropshadows on the thumbs..

Usage:

Code: Select all

$i = new imagethumbnail_dropshadow();
	$i->open("xxx.jpg");
	$i->setX(100);
	$i->dropshadow();
	
	header("Content-type: image/jpeg;");
	$i->imagejpeg();
You can also set the background colour by calling setColor() if you need something that isn't white.

Code: Select all

class imagethumbnail_dropshadow extends imagethumbnail {

		function imagethumbnail_dropshadow() {
			$this->color = "FFFFFF";
		}
		
		function setColor($color="") {
			if (isset($color)) { $this->color = $color; }
			return $this->color;
		}

		function dropshadow() {

			if (!isset($this->thumbnail)) { $this->generate(); }

			$width = imagesx($this->thumbnail);
			$height = imagesy($this->thumbnail);
			$r = hexdec(substr($this->color,0,2));
			$g = hexdec(substr($this->color,2,2));
			$b = hexdec(substr($this->color,4,2));
			
			$temp = imagecreatetruecolor($width+7,$height+7);
			$bgcolor = imagecolorallocate($temp,$r,$g,$b);
			imagefill($temp,0,0,$bgcolor);

			$right = imagecreatefromstring(base64_decode($this->right()));
			$bottom = imagecreatefromstring(base64_decode($this->bottom()));
			$corner = imagecreatefromstring(base64_decode($this->corner()));

			imagecopy($temp,$this->thumbnail,0,0,0,0,$width,$height);

			imagecopyresampled($temp,$right,$width,0,0,0,7,$height,7,279);
			imagecopyresampled($temp,$corner,$width,$height,0,0,7,8,7,8);
			imagecopyresampled($temp,$bottom,0,$height,0,0,$width,8,279,8);

			$this->thumbnail = $temp;

		}

		function right() {
		
			$c  = "iVBORw0KGgoAAAANSUhEUgAAAAcAAAEXCAYAAABh8178AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m";
			$c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAV3SURBVHjaYmRgYOAH4v9A/BeK/wDxPxAGCCBmIKEO";
			$c .= "xLxAzAnELAwQAFL8HyCAQJLuQCwMVcAC1QXS/QcggEAceyD+CsSvgPghVOcvIP4JEEAgSQMg/gTET6ES";
			$c .= "b4H4HRB/BAggkKQiEH+ASryDGs8OxMwAAQSSFIBKvAdibpgEEDMCBBATiIBiJiiG8RkAAoiJAQ8ACCC8";
			$c .= "kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4";
			$c .= "JQECCK8kQADhlQQIILySAAGEVxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDw";
			$c .= "SgIEEF5JgADCKwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADh";
			$c .= "lQQIILySAAGEVxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADC";
			$c .= "KwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQIILySAAGE";
			$c .= "VxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQII";
			$c .= "ryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQIILySAAGEVxIggPBKAgQQ";
			$c .= "XkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQIIryRAAOGVBAgg";
			$c .= "vJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQIILySAAGEVxIggPBKAgQQXkmAAMIrCRBA";
			$c .= "eCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA";
			$c .= "8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQIILySAAGEVxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA";
			$c .= "4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAA";
			$c .= "wisJEEB4JQECCK8kQADhlQQIILySAAGEVxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgAB";
			$c .= "hFcSIIDwSgIEEF5JgADCKwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQEC";
			$c .= "CK8kQADhlQQIILySAAGEVxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIE";
			$c .= "EF5JgADCKwkQQHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQI";
			$c .= "ILySAAGEVxIggPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQ";
			$c .= "QHglAQIIryRAAOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQIILySAAGEVxIg";
			$c .= "gPBKAgQQXkmAAMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQIIryRA";
			$c .= "AOGVBAggvJIAAYRXEiCA8EoCBBBeSYAAwisJEEB4JQECCK8kQADhlQQIILySAAGEVxIggPBKAgQQXkmA";
			$c .= "AMIrCRBAeCUBAgivJEAA4ZUECCC8kgABhFcSIIDwSgIEEF5JgADCKwkQQHglAQIMALUMGtBC6VemAAAA";
			$c .= "AElFTkSuQmCC";
			
			return $c;
		
		}

		function bottom() {
		
			$c  = "iVBORw0KGgoAAAANSUhEUgAAARcAAAAICAYAAADTJLsuAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m";
			$c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADOSURBVHjaYmRgYNAHYgMgdoDSCkAswDAKRsEoGAUU";
			$c .= "AIAAYgLi/1D8D4ph/FEwCkbBKCAbAAQQCxD/BeKfQPwViD8B8QeoHONo8IyCUTAKyAUAAcQCLVg+A/Er";
			$c .= "IH4KFX8PbdWMglEwCkYBWQAggECFyzcgfgPED6Fi74CYe7RwGQWjYBRQAgACiAXaHXoF5b8FYl4gZh/t";
			$c .= "Fo2CUTAKKAEAAcQILUg4oK0VLiifebRwGQWjYBRQAgACiBHa/WGCtmKYRwuWUTAKRgE1AECAAQBwfxdk";
			$c .= "hvh7/AAAAABJRU5ErkJggg==";

			return $c;

		}

		function corner() {
		
			$c  = "iVBORw0KGgoAAAANSUhEUgAAAAcAAAAICAYAAAA1BOUGAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m";
			$c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAACHSURBVHjaYmRgYPgPxB+A+AEQXwDiA1D6AUAAMUEl";
			$c .= "QfgfFMP4DAABxATVBcKfgPgrEP8E4r8gBQABxAIk7kMlngLxKyD+DFMAEEAsUPO/QiUeAvEbIP4GkgQI";
			$c .= "IJDkQajKz1CJV1DFfwACCKbzL1TBN6jED5DjAAKIEUjwQ133F4r/wFwOEGAApWAy7anvg04AAAAASUVO";
			$c .= "RK5CYII=";

			return $c;
		
		}

	}
Post Reply