note 106431 added to function.imagecopyresized
| From: | iffyfromLagos at osu1 dot php dot net | Date: | Wed, 09 Nov 2011 07:35:38 +0000 |
| Subject: | note 106431 added to function.imagecopyresized | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-184346@lists.php.net to get a copy of this message | ||
<?php
/**
I made a little adjustment to "it at chmzap dot ru" code after using it and realizing that
the resizing ratio was a bit off. The only change was in the logic where i replaced
if($gis[0] <= $size)
{
$av = $x;
$ah = $y;
}
else
{
$yc = $y*1.3333333;
$d = $x>$yc?$x:$yc;
$c = $d>$size ? $size/$d : $size;
$av = $x*$c; //вÑÑоÑа иÑÑ
одной
каÑÑинки
$ah = $y*$c; //длина иÑÑ
одной
каÑÑинки
}
with
$imgratio = $gis[0]/$gis[1];
if($imgratio>1)
{
$av=$size;
$ah=$size/$imgratio;
}
else
{
$ah=$size;
$av=$size*$imgratio;
}
We get the ratio of both sides of the image and determine which is larger, the larger side is then
adjusted to the image size set by the user, while the smaller side is adjusted to a proportionate
size based on the image ratio.
*/
/**
* Make thumbs from JPEG, PNG, GIF source file
*
* $tmpname = $_FILES['source']['tmp_name'];
* $size - max width size
* $save_dir - destination folder
* $save_name - tnumb new name
*
* Author: LEDok - http://www.citadelavto.ru/
*/
function img_resize( $tmpname, $size, $save_dir, $save_name )
{
$save_dir .= ( substr($save_dir,-1) != "/") ? "/" : "";
$gis = GetImageSize($tmpname);
$type = $gis[2];
switch($type)
{
case "1": $imorig = imagecreatefromgif($tmpname); break;
case "2": $imorig = imagecreatefromjpeg($tmpname);break;
case "3": $imorig = imagecreatefrompng($tmpname); break;
default: $imorig = imagecreatefromjpeg($tmpname);
}
$x = imageSX($imorig);
$y = imageSY($imorig);
$imgratio = $gis[0]/$gis[1];
if($imgratio>1)
{
$av=$size;
$ah=$size/$imgratio;
}
else
{
$ah=$size;
$av=$size*$imgratio;
}
$im = imagecreate($av, $ah);
$im = imagecreatetruecolor($av,$ah);
if (imagecopyresampled($im,$imorig , 0,0,0,0,$av,$ah,$x,$y))
if (imagejpeg($im, $save_dir.$save_name))
return true;
else
return false;
}
?>
And now how using this function fast
<?php
if ($_POST[pic])
{
$tmpname = $_FILES['pic']['tmp_name'];
@img_resize( $tmpname , 600 , "../album" , "album_".$id.".jpg");
@img_resize( $tmpname , 120 , "../album" , "album_".$id."_small.jpg");
@img_resize( $tmpname , 60 , "../album" ,
"album_".$id."verysmall.jpg");
}
else
echo "No Images uploaded via POST";
?>
----
Server IP: 69.147.83.197
Probable Submitter: 41.139.91.108
----
Manual Page -- http://www.php.net/manual/en/function.imagecopyresized.php
Edit -- https://master.php.net/note/edit/106431
Del: integrated -- https://master.php.net/note/delete/106431/integrated
Del: useless -- https://master.php.net/note/delete/106431/useless
Del: bad code -- https://master.php.net/note/delete/106431/bad+code
Del: spam -- https://master.php.net/note/delete/106431/spam
Del: non-english -- https://master.php.net/note/delete/106431/non-english
Del: in docs -- https://master.php.net/note/delete/106431/in+docs
Del: other reasons-- https://master.php.net/note/delete/106431
Reject -- https://master.php.net/note/reject/106431
Search -- https://master.php.net/manage/user-notes.php