php网页显示正方形图片缩略图

需求是这样的:原始图片的大小是不定的,类似800*600、1000*756,现有一个页面要以正方形(60*60)显示这些图片,注意:图片只能在内存处理,不能缩小后保存到本地磁盘。

解决办法:

html页面

<?php for($i=1;$i<=9;$i++){

   $imgu=$fav['imgurl'.$i];

     if(!empty($imgu)){

        $miniimg=WWW_ROOT."miniimg.php?filename=".$imgu;

            ?>

   <img src="<?php echo $miniimg;?>" width="60px" height="60px">

<?php }}?>

其中$imgu表示图片的链接地址,如:http://m1.img.libdd.com/farm4/2013/0618/17/32D9A44D5B8415A3CBFB33D141F98F937603F219A0E75_580_911.JPEG

miniimg.php代码如下:

<?php



$filename= $_GET['filename'];

$width = 60;

$height = 60;



// Content type

header('Content-type: image/jpeg');



// Get new dimensions

list($x, $y) = getimagesize($filename);





if($x>$y){

//图片宽大于高

    $sx = abs(($y-$x)/2);

    $sy = 0;

    $thumbw = $y;

    $thumbh = $y;

} else {

//图片高大于等于宽

    $sy = abs(($x-$y)/2);

    $sx = 0;

    $thumbw = $x;

    $thumbh = $x;

}



// Resample

$image_p = imagecreatetruecolor($width, $height);

$image = imagecreatefromjpeg($filename);

imagecopyresampled($image_p, $image, 0, 0, $sx, $sy, $width, $height, $thumbw, $thumbh);



// Output

imagejpeg($image_p, null, 100);



// Imagedestroy

imagedestroy ($image_p);

展示地址:http://www.meixianfeng.com/userspace/62

你可能感兴趣的:(PHP)