php缩略图代码,实现满窗格等比例缩小
发布时间:2016-05-10 编辑:jiaochengji.com
本文介绍下,一个php缩图图的实现挖出,满窗格后即可等比例缩小,有需要的朋友,参考下吧。
本缩略图实现的功能如下:
1,等比例缩小
2,必须是规定的缩略图大小
3,原图可以裁剪但需要中心点在窗口
2,必须是规定的缩略图大小
3,原图可以裁剪但需要中心点在窗口
代码如下:
复制代码 代码示例:
<?php
/**
* 等比例缩小的缩略图
* edit www.jbxue.com
*/
function thumbs($FileName,$SaveTo,$SetW,$SetH){
$IMGInfo= getimagesize($FileName);
if(!$IMGInfo) return false;
if($IMGInfo[mime]== "image/pjpeg" || $IMGInfo[mime]=="image/jpeg"){
$ThisPhoto= imagecreatefromjpeg($FileName);
}elseif($IMGInfo[mime]== "image/x-png" || $IMGInfo[mime]== "image/png"){
$ThisPhoto= imagecreatefrompng($FileName);
}elseif($IMGInfo[mime]== "image/gif"){
$ThisPhoto=imagecreatefromgif($FileName);
}
$width=$IMGInfo[0];
$height=$IMGInfo[1];
$scalc = max($width/$SetW,$height/$SetH);
$nw = intval($width/$scalc);
$nh = intval($height/$scalc);
echo "缩略大小:w$nw,h$nh <br />";
if($SetW-$nw == 1){$nw = $SetW;}
if($SetH-$nh == 1){$nh = $SetH;}
echo "+修正1像素: w$nw,h$nh<br />";
//补宽
if($SetW-$nw > 0){
$nh = $nh +(($nh/$nw) * ($SetW-$nw));
echo "*需补宽".($SetW-$nw).",陪补高".(($nh/$nw) * ($SetW-$nw))." <br />";
$nw = $SetW;
}
//补高
if($SetH-$nh > 0){
$nw = $nw + (($nw/$nh) * ($SetH-$nh));
echo "*需补高".($SetH-$nh).",陪补宽". (($nw/$nh) * ($SetH-$nh)) ."<br />";
$nh = $SetH;
}
$nw = intval($nw);
$nh = intval($nh);
echo "+修正大小:w$nw,h$nh<br />";
$px = ($SetW - $nw)/2;
$py = ($SetH - $nh)/2;
echo "窗口大小:w$SetW,h$SetH <br />";
echo "+偏移修正:x$px,y$py <br />";
$NewPhoto=imagecreatetruecolor($SetW,$SetH);
imagecopyresized($NewPhoto,$ThisPhoto,$px,$py,0,0,$nw,$nh,$width,$height);
ImageJpeg ($NewPhoto,$SaveTo);
return true;
}
thumbs('a.jpg','newa.jpg',150,70);
?>
/**
* 等比例缩小的缩略图
* edit www.jbxue.com
*/
function thumbs($FileName,$SaveTo,$SetW,$SetH){
$IMGInfo= getimagesize($FileName);
if(!$IMGInfo) return false;
if($IMGInfo[mime]== "image/pjpeg" || $IMGInfo[mime]=="image/jpeg"){
$ThisPhoto= imagecreatefromjpeg($FileName);
}elseif($IMGInfo[mime]== "image/x-png" || $IMGInfo[mime]== "image/png"){
$ThisPhoto= imagecreatefrompng($FileName);
}elseif($IMGInfo[mime]== "image/gif"){
$ThisPhoto=imagecreatefromgif($FileName);
}
$width=$IMGInfo[0];
$height=$IMGInfo[1];
$scalc = max($width/$SetW,$height/$SetH);
$nw = intval($width/$scalc);
$nh = intval($height/$scalc);
echo "缩略大小:w$nw,h$nh <br />";
if($SetW-$nw == 1){$nw = $SetW;}
if($SetH-$nh == 1){$nh = $SetH;}
echo "+修正1像素: w$nw,h$nh<br />";
//补宽
if($SetW-$nw > 0){
$nh = $nh +(($nh/$nw) * ($SetW-$nw));
echo "*需补宽".($SetW-$nw).",陪补高".(($nh/$nw) * ($SetW-$nw))." <br />";
$nw = $SetW;
}
//补高
if($SetH-$nh > 0){
$nw = $nw + (($nw/$nh) * ($SetH-$nh));
echo "*需补高".($SetH-$nh).",陪补宽". (($nw/$nh) * ($SetH-$nh)) ."<br />";
$nh = $SetH;
}
$nw = intval($nw);
$nh = intval($nh);
echo "+修正大小:w$nw,h$nh<br />";
$px = ($SetW - $nw)/2;
$py = ($SetH - $nh)/2;
echo "窗口大小:w$SetW,h$SetH <br />";
echo "+偏移修正:x$px,y$py <br />";
$NewPhoto=imagecreatetruecolor($SetW,$SetH);
imagecopyresized($NewPhoto,$ThisPhoto,$px,$py,0,0,$nw,$nh,$width,$height);
ImageJpeg ($NewPhoto,$SaveTo);
return true;
}
thumbs('a.jpg','newa.jpg',150,70);
?>
2,css代码部
复制代码 代码示例:
<style>
img{ border:1px solid #ccc;margin:2px;}
</style>
img{ border:1px solid #ccc;margin:2px;}
</style>
3,html页面中的图片地址
复制代码 代码示例:
<img src="/a.jpg" />
<img src="/newa.jpg" />
<img src="/newa.jpg" />
您可能感兴趣的文章:
php按比例计算图片大小的代码
php缩略图代码,实现满窗格等比例缩小
php等比例缩放图片的示例参考
php缩略图填充白边的示例代码
php图片裁剪与缩略图示例
php 缩略图类(附调用示例)
PHP等比例缩放图片生成缩略图函数的例子
PHP图片裁剪函数(图像不变形)
php生成缩略图自动填充白边例子
php图片等比例放大与缩小的方法举例
上一篇:php遍历哈希表及关联数组的实例代码
下一篇:判断php数组是否为索引数组的函数
[关闭]