Page 1 of 1

Two Script

Posted: Mon Jun 12, 2006 1:43 pm
by raiden
Hi!

I am trying to merge two script together but it does not work

Basicly, what I would like is to have my image thumbnailled, clip corners and drop shadow
(So you understand that I want to merge the clip corner script and the drop shadow script, in the thumbnail area)

To do so, i have taken the full clip corner script and added the "class imagethumbnail_dropshadow extends imagethumbnail" part

I have put $i->dropshadow(); after $i->clipcorners();

And it tells me that the dropshadow() is not found. If I enable $i = new imagethumbnail_dropshadow();, it does not work.

Can some one help me with that?

Posted: Mon Jun 12, 2006 1:50 pm
by bokehman
could you post your code?

Posted: Mon Jun 12, 2006 3:14 pm
by raiden
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Here. I have disabled the dropshadow script with some // just to have the script running correctly

Thanks!

Thanks!

Code: Select all

<?php

$url = $HTTP_GET_VARS['t'];
$imgname = $HTTP_GET_VARS['nbr'];
$size = $HTTP_GET_VARS['size'];

	$i = new imagethumbnail_corners();
	//$i = new imagethumbnail_dropshadow();
	//$i = new imagethumbnail_blackandwhite();
	$i->open("$url");

list($width, $height, $type, $attr) = getimagesize("$url");
$old_width = $width;
$old_height = $height;

if ($size == 1) {
 if ($width > "299") {
  $height = round((299 * $height) / $width);
  $width = "299";
 }
 if ($height > "300") {
  $width = round((300 * $width) / $height);
  $height = "300";
 }
} else {
 if ($width > "80") {
  $height = round((80 * $height) / $width);
  $width = "80";
 }
 if ($height > "80") {
  $width = round((80 * $width) / $height);
  $height = "80";
 }
}

	$i->setX($width);
        $i->setY($height);
	$i->clipcorners();
	//$i->dropshadow();
	
$kk = strrchr($url,"/"); 
$kk = substr($kk,1,strlen($kk));  //image name
$kk = "lutteproquebec/news/photo/" . $imgname;
$i->imagejpeg("$kk");

echo "<li>Téléchargement de la photo complété<br>";

	class imagethumbnail {
	
		var $filename;
		var $x;
		var $y;
		var $image;
		var $thumbnail;

		function imagethumbnail() {

		}
		
		function open($filename) {

			$this->filename = $filename;
			$imageinfo = array();
			$imageinfo = getimagesize($this->filename,$imageinfo);
			
			$this->old_x = $imageinfo[0];
			$this->old_y = $imageinfo[1];
						
			switch ($imageinfo[2]) {
				case "1": $this->image = imagecreatefromgif($this->filename); break;
				case "2": $this->image = imagecreatefromjpeg($this->filename); break;
				case "3": $this->image = imagecreatefrompng($this->filename); break;
			}
			
		}

		function setX($x="") {
			if (isset($x)) { $this->x = $x; }
			return $this->x;
		}

		function setY($y="") {
			if (isset($y)) { $this->y = $y; }
			return $this->y;
		}

		function generate() {

			if ($this->x > 0 and $this->y > 0) {
				$new_x = $this->x;
				$new_y = $this->y;
			} elseif ($this->x > 0 and $this->x != "") {
				$new_x = $this->x;
				$new_y = ($this->x/$this->old_x)*$this->old_y;
			} else {
				$new_x = ($this->y/$this->old_y)*$this->old_x;
				$new_y = $this->y;
			}

			$this->thumbnail = imagecreatetruecolor($new_x,$new_y);
			$white = imagecolorallocate($this->thumbnail,255,255,255);
			imagefill($this->thumbnail,0,0,$white);

			imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);

		}

		function imagegif($filename="") {
			if (!isset($this->thumbnail)) { $this->generate(); }
			imagetruecolortopalette($this->thumbnail,0,256);
			if ($filename=="") {
				imagegif($this->thumbnail);
			} else {
				imagegif($this->thumbnail,$filename);
			}
		}

		function imagejpeg($filename="",$quality=80) {
			if (!isset($this->thumbnail)) { $this->generate(); }
			imagejpeg($this->thumbnail,$filename,$quality);
		}

		function imagepng($filename="") {
			if (!isset($this->thumbnail)) { $this->generate(); }
			if ($filename=="") {
				imagepng($this->thumbnail);
			} else {
				imagepng($this->thumbnail,$filename);
			}
		}

	}

	class imagethumbnail_corners extends imagethumbnail {

		var $radius;
		var $color;

		function imagethumbnail_corners() {
			$this->radius = 10;
			$this->color = "FFFFFF";
		}
		
		function setRadius($radius="") {
			if (isset($radius)) { $this->radius = $radius; }
			return $this->radius;
		}
		
		function setColor($color="") {
			if (isset($color)) { $this->color = $color; }
			return $this->color;
		}

		function clipcorners() {

			if (!isset($this->thumbnail)) { $this->generate(); }
			
			$i_x = imagesx($this->thumbnail);
			$i_y = imagesy($this->thumbnail);
			$xrad = $this->radius;
			$yrad = $this->radius;
			$r = hexdec(substr($this->color,0,2));
			$g = hexdec(substr($this->color,2,2));
			$b = hexdec(substr($this->color,4,2));

			$gdCornerSource = imagecreatefromstring(base64_decode($this->cornerpng()));
			$gdCorner_x = imagesx($gdCornerSource);
			$gdCorner_y = imagesy($gdCornerSource);

			$gdCorner1 = imagecreatefromstring(base64_decode($this->blankpng()));
			$gdCorner2 = imagecreatefromstring(base64_decode($this->blankpng()));
			$gdCorner3 = imagecreatefromstring(base64_decode($this->blankpng()));
			$gdCorner4 = imagecreatefromstring(base64_decode($this->blankpng()));

			for ($y=0;$y<imagesy($gdCornerSource);$y++) {
				for ($x=0;$x<imagesx($gdCornerSource);$x++) {

					$rgb = imagecolorat($gdCornerSource,$x,$y);
					$a = ($rgb >> 24) & 0xFF;
					$colour = imagecolorallocatealpha($gdCorner1,$r,$g,$b,$a);
					imagesetpixel($gdCorner1,$x,$y,$colour);
					$colour = imagecolorallocatealpha($gdCorner2,$r,$g,$b,$a);
					imagesetpixel($gdCorner2,$gdCorner_x-$x,$y,$colour);
					$colour = imagecolorallocatealpha($gdCorner3,$r,$g,$b,$a);
					imagesetpixel($gdCorner3,$gdCorner_x-$x,$gdCorner_y-$y,$colour);
					$colour = imagecolorallocatealpha($gdCorner4,$r,$g,$b,$a);
					imagesetpixel($gdCorner4,$x,$gdCorner_y-$y,$colour);

				}
			}

			imagecopyresampled($this->thumbnail,$gdCorner1,0,0,0,0,$xrad,$yrad,$gdCorner_x,$gdCorner_y);
			imagecopyresampled($this->thumbnail,$gdCorner2,$i_x-$xrad,0,0,0,$xrad,$yrad,$gdCorner_x,$gdCorner_y);
			imagecopyresampled($this->thumbnail,$gdCorner3,$i_x-$xrad,$i_y-$yrad,0,0,$xrad,$yrad,$gdCorner_x,$gdCorner_y);
			imagecopyresampled($this->thumbnail,$gdCorner4,0,$i_y-$yrad,0,0,$xrad,$yrad,$gdCorner_x,$gdCorner_y);

		}

		//Base64 encoded corner PNG image

		function cornerpng() {

			$c  = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m";
			$c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIBSURBVHjaYmRgYPjPMHDgOhTfAuJ7QPwYiJ8D8Rsg";
			$c .= "/gjE3wECiIXODnoIxEeB+AQQnwLic/////+NTwNAANHDgaCQ2AnEu4B4L9BBD0jRDBBAtHTgHSDeAMSb";
			$c .= "gI46TK4hAAFECwfeB+IVQLwK6LALlBoGEEAM0ExCDfwdiGcAsRXQYQzUwgABRC0HHgTiGGo6DIYBAohS";
			$c .= "B/4D4slArEkLx4EwQABR4kBQWsunlcNgGCCAyHXgSSAOobXjQBgggMhx4G4gdqSH40AYIIBIdeB2ILag";
			$c .= "l+NAGCCAGEgMObo6DoQBAoiBhDTnSG/HgTBAADEQmVtDBsJxIAwQQExE1DITgArXDFR7DCCACIXg5IEK";
			$c .= "ORgGCCB8IXgIiKcxDDAACCBcDvwBxLOBPrg+0A4ECCBcDlwIdNwShkEAAAKICUd7bhHDIAEAAYTNgSuA";
			$c .= "oXdssDgQIICYsDTTVzEMIgAQQOgO3ECtZjq1AEAAMaH1vjYxDDIAEEDIDtxJSe+LVgAggJAduIthEAKA";
			$c .= "AGJC6vHvHYwOBAggmAOPktrjpxcACCCYA08wDFIAEEAwB54arA4ECCAm6PDXucHqQIAAAjuQ0BDYQAKA";
			$c .= "AGKCDh4OWgAQQEzQkc1BCwACiAk67DpoAUAAMUHHhActAAggJuiA9aAFAAHEBG3FDFoAEEBM0JHRQQsA";
			$c .= "AgwAlTI79UaGSUQAAAAASUVORK5CYII=";

			return $c;

		}

		//Base64 encoded 127 alpha PNG image

		function blankpng() {

			$c  = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m";
			$c .= "dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqSURBVHjaYvz//z/DYAYAAcTEMMgBQAANegcCBNCg";
			$c .= "dyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAAN";
			$c .= "egcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQ";
			$c .= "oHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAADXoHAgTQoHcgQAANegcCBNCgdyBAAA16BwIE0KB3IEAA";
			$c .= "DXoHAgTQoHcgQAANegcCBNCgdyBAgAEAMpcDTTQWJVEAAAAASUVORK5CYII=";

			return $c;

		}
	}
	
	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;
       
        }
}
?>

feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

Posted: Sun Jun 18, 2006 9:35 pm
by raiden
Anyone???