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?
Two Script
Moderators: onion2k, General Moderators
feyd | Please use
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]