≡
  • 网络编程
  • 数据库
  • CMS技巧
  • 软件编程
  • PHP笔记
  • JavaScript
  • MySQL
位置:首页 > 网络编程 > PHP笔记

强大的PHP生成缩略图函数用法

人气:785 时间:2018-09-24

这篇文章主要为大家详细介绍了强大的PHP生成缩略图函数用法,具有一定的参考价值,可以用来参考一下。

对强大的PHP生成缩略图函数感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!

/**
* 强大的PHP生成缩略图函数
*
* @param 
* @arrange 512-笔记网: q1010.com
**/
<?php
/**
* 生成缩略图
* @author yangzhiguo0903@163.com
* @param string 源图绝对完整地址{带文件名及后缀名}
* @param string 目标图绝对完整地址{带文件名及后缀名}
* @param int 缩略图宽{0:此时目标高度不能为0,目标宽度为源图宽*(目标高度/源图高)}
* @param int 缩略图高{0:此时目标宽度不能为0,目标高度为源图高*(目标宽度/源图宽)}
* @param int 是否裁切{宽,高必须非0}
* @param int/float 缩放{0:不缩放, 0<this<1:缩放到相应比例(此时宽高限制和裁切均失效)}
* @return boolean
*/
function img2thumb($src_img, $dst_img, $width = 75, $height = 75, $cut = 0, $proportion = 0)
{
if(!is_file($src_img))
{
return false;
}
$ot = fileext($dst_img);
$otfunc = 'image' . ($ot == 'jpg' ? 'jpeg' : $ot);
$srcinfo = getimagesize($src_img);
$src_w = $srcinfo[0];
$src_h = $srcinfo[1];
$type = strtolower(substr(image_type_to_extension($srcinfo[2]), 1));
$createfun = 'imagecreatefrom' . ($type == 'jpg' ? 'jpeg' : $type);
$dst_h = $height;
$dst_w = $width;
$x = $y = 0;
/**
* 缩略图不超过源图尺寸(前提是宽或高只有一个)
*/
if(($width> $src_w && $height> $src_h) || ($height> $src_h && $width == 0) || ($width> $src_w && $height == 0))
{
$proportion = 1;
}
if($width> $src_w)
{
$dst_w = $width = $src_w;
}
if($height> $src_h)
{
$dst_h = $height = $src_h;
}
if(!$width && !$height && !$proportion)
{
return false;
}
if(!$proportion)
{
if($cut == 0)
{
if($dst_w && $dst_h)
{
if($dst_w/$src_w> $dst_h/$src_h)
{
$dst_w = $src_w * ($dst_h / $src_h);
$x = 0 - ($dst_w - $width) / 2;
}
else
{
$dst_h = $src_h * ($dst_w / $src_w);
$y = 0 - ($dst_h - $height) / 2;
}
}
else if($dst_w xor $dst_h)
{
if($dst_w && !$dst_h) //有宽无高
{
$propor = $dst_w / $src_w;
$height = $dst_h = $src_h * $propor;
}
else if(!$dst_w && $dst_h) //有高无宽
{
$propor = $dst_h / $src_h;
$width = $dst_w = $src_w * $propor;
}
}
}
else
{
if(!$dst_h) //裁剪时无高
{
$height = $dst_h = $dst_w;
}
if(!$dst_w) //裁剪时无宽
{
$width = $dst_w = $dst_h;
}
$propor = min(max($dst_w / $src_w, $dst_h / $src_h), 1);
$dst_w = (int)round($src_w * $propor);
$dst_h = (int)round($src_h * $propor);
$x = ($width - $dst_w) / 2;
$y = ($height - $dst_h) / 2;
}
}
else
{
$proportion = min($proportion, 1);
$height = $dst_h = $src_h * $proportion;
$width = $dst_w = $src_w * $proportion;
}
$src = $createfun($src_img);
$dst = imagecreatetruecolor($width ? $width : $dst_w, $height ? $height : $dst_h);
$white = imagecolorallocate($dst, 255, 255, 255);
imagefill($dst, 0, 0, $white);
if(function_exists('imagecopyresampled'))
{
imagecopyresampled($dst, $src, $x, $y, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
}
else
{
imagecopyresized($dst, $src, $x, $y, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
}
$otfunc($dst, $dst_img);
imagedestroy($dst);
imagedestroy($src);
return true;
}
?>
/***   来自四海网(www.q1010.com)   ***/
 

/**
* 强大的PHP生成缩略图函数
*
* @param 
* @arrange 512-笔记网: q1010.com
**/
function fileext($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}
/***   来自四海网(www.q1010.com)   ***/
函数的使用demo

/**
* 强大的PHP生成缩略图函数
*
* @param 
* @arrange 512-笔记网: q1010.com
**/
$src_img = "./ROSI_050_002.JPG";
$dst_img = "./ROSI_050_002_thumb.jpg";
$stat = img2thumb($src_img, $dst_img, $width = 200, $height = 300, $cut = 0, $proportion = 0);
if($stat){
echo 'Resize Image Success!<br />';
echo '<img src="'.$dst_img.'" />'; 
}else{
echo 'Resize Image Fail!'; 
}
/***   来自四海网(www.q1010.com)   ***/

本文来自:http://www.q1010.com/173/1360-0.html

注:关于强大的PHP生成缩略图函数用法的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。

关键词:缩略图

您可能感兴趣的文章

  • PHP 缩略图锐化函数的简单示例
  • PHP 图片处理函数类 (水印图,缩略图)[等比例压缩与裁剪压缩]
  • php 从上传的文件创建缩略图的简单示例
  • php 生成缩略图的示例,需要GD2 library
  • php 使用GD创建保持宽高比缩略图的简单示例
  • php 动态生成缩略图并输出显示的简单示例
  • PHP 获取图片的Exif、缩略图的简单示例
  • php 上传图片并生成缩略图的简单示例
  • php 原比例生成缩略图实现方法
  • php 图片生成缩略图函数的简单示例
上一篇:php 下载文件实现及文件名乱码解决方法
下一篇:php 遍历数组输出字符串的简单示例
热门文章
  • PHP 写入WRITE编码为UTF8的文件示例
  • PHP 中文字符串截取函数示例:支持gb2312,gbk,big
  • PHP 简单留言板的制作示例
  • 解决Fatal error: Call to undefined function mb_convert_encoding() in错误问题
  • PHP语言基础(标记、注释、变量、数组、常量、函数)示例
  • php 生成迅雷链接的简单示例
  • php 获取短网址的实现方法
  • PHP 通用分页类的简单示例
  • PHP 使用文件方式导入导出整个MYSQL数据库的实现方法
  • php 获取MYSQL错误的简单示例
  • 最新文章
    • 解决PHP使用redis实现统计缓存MySQL压力的问题
    • php 简单的上传进度条的简单示例
    • php 给html中引用的js和css路径打上版本号的实现方法
    • php 实现计算年龄精准到年月日的实例
    • php+ajax无刷新分页的简单示例
    • 解决php+ajax无刷新上传图片的问题
    • 解决PHP生成HTML静态页面的问题
    • 解决PHP使用uniqid函数生成唯一ID的问题
    • 解决PHP防刷票的一些问题
    • 微信access_token的获取开发的实现方法

四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。