note 62763 added to function.imagecopyresampled

From: Date: Thu, 09 Mar 2006 08:01:57 +0000
Subject: note 62763 added to function.imagecopyresampled
Groups: php.notes 
Request: Send a blank email to php-notes+get-105111@lists.php.net to get a copy of this message
Here is function which: - resize and crop (crop format 4:3 or 1:1) - methode resample/resize - open jpg, gif, bmp, png - save jpg (85%), gif, bmp, png - show images $FILE_MIMES = array( 'image/pjpeg'=>"jpg", 'image/jpeg'=>"jpg", 'image/jpg'=>"jpg", 'image/png'=>"png", 'image/x-png'=>"png", 'image/gif'=>"gif", 'image/bmp'=>"bmp"); $FILE_EXTS = array('.jpeg','.jpg','.png','.gif','.bmp'); $MAX_SIZE = 16777216; $lng=array( 's_imgDimension'=>array( "80", "320" ), 's_imgCrop' =>array( "- auto -", "na sirku", "na vysku", "ctverec", "- zadne -" ), 's_imgFormat' =>array( "4/3", "1/1" ), 's_imgType' =>array( "jpg", "png", "gif", "bmp" ), 's_imgMethode' =>array( "resample", "resize" ) ); function PPimageTransform($photo1,$type1,$dim,$crop, $format,$methode,$photo2,$type2) { if ($photo1!=="" && File_Exists($photo1)) { if (!($crop>0 && $crop<5)) $crop=0; width=x" list($w,$h) = GetImageSize($photo1); $w=($w<1)?1:$w; $h=($h<1)?1:$h; $wh=$w/$h; // format $format=($format=='4/3')?4/3:1; // auto crop if ($crop==0) { $z1=$format- ($format-1)/2; $z2=$format+(1-$format-1)/2; if ($wh>$z1) {$crop=1;} elseif ($wh<$z2) {$crop=2;} else {$crop=3;} } // scale if ($crop==4) { $a=$w>$h?$w:$h; $scale=$dim/$a; $nw=$w*$scale;$nw=($nw<1)?1:$nw; $nh=$h*$scale;$nh=($nh<1)?1:$nh; $d=array(0,0,floor($nw),floor($nh)); $s=array(0,0,$w,$h); } else { if ($crop==3) {$nw=1;$nh=1;} elseif ($crop==2) {$nw=1/$format;$nh=1;} elseif ($crop==1) {$nw=1;$nh=1/$format;} $nw*=$dim;$nw=($nw<1)?1:$nw; $nh*=$dim;$nh=($nh<1)?1:$nh; $s1=$nw/$w; $s2=$nh/$h; $h1=$nh*$s1; $w2=$nw*$s2; $s1=($h1<=$nh)?$s1:0; $s2=($w2<=$nw)?$s2:0; $scale=($s1>$s2)?$s1:$s2; $scale=($scale<=0)?1:$scale; $d=array(0,0,floor($nw),floor($nh)); $x1=floor(($w-$d[2]/$scale)/2);$x1=$x1<0?0:$x1; $y1=floor(($h-$d[3]/$scale)/2);$y1=$y1<0?0:$y1; $s=array($x1,$y1,floor($w-2*$x1),floor($h-2*$y1)); } // input/output switch($type1) { case 'jpg': $imgIn = ImageCreateFromJPEG; break; case 'png': $imgIn = ImageCreateFromPNG; break; case 'gif': $imgIn = ImageCreateFromGIF; break; case 'bmp': $imgIn = ImageCreateFromWBMP; break; default: return FALSE; break; } switch($type2) { case 'jpg': $imgOut = ImageJPEG; break; case 'png': $imgOut = ImagePNG; break; case 'gif': $imgOut = ImageGIF; break; case 'bmp': $imgOut = ImageWBMP; break; default: return FALSE; break; } // resample (d-destination, s-source) $image1 = $imgIn($photo1); if ($methode==0) { $image2 = ImageCreateTruecolor($d[2],$d[3]); ImageCopyResampled($image2, $image1, $d[0],$d[1], $s[0],$s[1], $d[2],$d[3], $s[2],$s[3]); } else { $image2 = ImageCreate($d[2],$d[3]); ImageCopyResized($image2, $image1, $d[0],$d[1], $s[0],$s[1], $d[2],$d[3], $s[2],$s[3]); } // output if ($type2=='jpg') {$imgOut($image2,$photo2,85);} else {$imgOut($image2,$photo2);} ImageDestroy($image2); ImageDestroy($image1); } } ---- Server IP: 212.24.129.6 Probable Submitter: 82.99.148.9 ---- X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER autolearn=no version=2.64 ---- Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php Edit -- http://master.php.net/note/edit/62763 Del: integrated -- http://master.php.net/note/delete/62763/integrated Del: useless -- http://master.php.net/note/delete/62763/useless Del: bad code -- http://master.php.net/note/delete/62763/bad+code Del: spam -- http://master.php.net/note/delete/62763/spam Del: non-english -- http://master.php.net/note/delete/62763/non-english Del: in docs -- http://master.php.net/note/delete/62763/in+docs Del: other reasons-- http://master.php.net/note/delete/62763 Reject -- http://master.php.net/note/reject/62763 Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#105111) next »