php按百分比生成缩略图的代码分享

网络编程 2025-03-29 20:32www.168986.cn编程入门

最近,我参与了一个网站项目,其中需要生成图片缩略图以减小列表页的大小并减轻服务器压力。对于崇尚简洁与实用的我来说,面对网上复杂冗长的PHP缩略图类,我感到了不小的困扰。虽然那些类功能强大,但我并不需要所有的复杂功能。

于是,我决定自己动手,翻查手册后利用几个简单的函数,编写了一个简洁的PHP生成缩略图的程序。这个程序无需使用类,一个函数就能轻松搞定。对于新手来说,更易于理解,希望能帮助到更多的人。

这个程序支持按原图比例生成缩略图,也支持按指定的长宽生成缩略图,默认是按百分比缩略。详细的注释已经嵌入在代码中,如有问题,欢迎在狼蚁网站SEO优化留言交流。

以下是源码:

```php

function makeThumb($ori_img, $new_img, $percent=50, $width=0, $height=0){

//获取原图信息

$original = getimagesize($ori_img);

//根据图片类型创建原始图像资源

switch($original[2]){

case 1: $s_original = imagecreatefromgif($ori_img); break;

case 2: $s_original = imagecreatefromjpeg($ori_img); break;

case 3: $s_original = imagecreatefrompng($ori_img); break;

}

//如果有百分比参数且大于0,则按照百分比计算目标宽度和高度

if($percent > 0){

$width = $original[0] $percent / 100;

$height = $original[1] $percent / 100;

$width = ($width > 0) ? $width : 1;

$height = ($height > 0) ? $height : 1;

}

//创建一个真彩画布

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

//调整图像大小并复制到画布上

imagecopyresized($canvas, $s_original, 0, 0, 0, 0, $width, $height, $original[0], $original[1]);

//生成新的图片文件

$loop = imagejpeg($canvas, $new_img);

if($loop){

echo "OK!<br/>"; //输出成功信息

}

}

//示例调用函数生成缩略图

makeThumb("bhsj.jpg","suolue1.jpg",15,0,0); //生成原图15%的缩略图

makeThumb("bhsj.jpg","suolue2.jpg",0,200,120); //生成指定宽高缩略图

makeThumb("bhsj.jpg","suolue3.jpg",15,200,120); //同时提供百分比和指定宽高时,优先按照百分比缩略

```

这段代码中包含了一个名为`makeThumb`的函数,它可以根据给定的参数生成缩略图。你可以通过调用这个函数并传入相应的参数来生成你需要的缩略图。例如,你可以生成原图15%的缩略图,也可以指定缩略图的宽度和高度。如果同时提供了百分比和指定宽高参数,程序会优先按照百分比进行缩略。

上一篇:vue-router中scrollBehavior的巧妙用法 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by