如何使缩略图使用PHP
所以,你想创建一个缩略图从某一图片...这使得PHP的任务容易。 我第一次写下面的功能来处理图像上传的用户在一个网站要我帮忙管理。 上传图片到这个网站可以JPEG文件, pngs ,或图像,所以我不得不写一个函数来处理所有三种。 此代码是基于最初从一个函数发现webcheatsheet.com
怎么做:
功能 createThumbs ( $ pathToImages , $ fname , $ pathToThumbs , $ thumbWidth )
(
/ /解析路径的延伸
$信息= pathinfo ( $ pathToImages 。 $ fname ) ;
/ /继续只要这是一个JPEG图像
($info['extension']) == ‘jpeg’) )如果( ( strtolower ( $信息[ '延伸' ] ) == '图片' ) | | ( strtolower ( $信息[ '延伸' ] ) == '的jpeg ' ) )
(/ /加载图像并获得图像尺寸
$ IMG公司= imagecreatefromjpeg ( “ ( $ pathToImages ) ( $ fname ) ” ) ;
$宽度= imagesx ( $ IMG公司) ;
$高度= imagesy ( $ IMG公司) ;/ /计算缩略图大小
$ new_width = $ thumbWidth ;
$ new_height = 底薪 ( $高度* ( $ thumbWidth / $宽度) ) ;/ /创建一个新的临时图像
$ tmp_img = imagecreatetruecolor ( $ new_width , $ new_height ) ;/ /复制并调整旧的形象进入新形象
imagecopyresized ( $ tmp_img , $ IMG公司, 0 , 0 , 0 , 0 , $ new_width , $ new_height , $宽度,高度$ ) ;/ /保存缩略图成一个文件
imagejpeg ( $ tmp_img , “ ( $ pathToThumbs ) ( $ fname ) ” ) ;)
如果( strtolower ( $信息[ '延伸' ] ) == '图片' )
(/ /加载图像并获得图像尺寸
$ IMG公司= imagecreatefromgif ( “ ( $ pathToImages ) ( $ fname ) ” ) ;
$宽度= imagesx ( $ IMG公司) ;
$高度= imagesy ( $ IMG公司) ;/ /计算缩略图大小
$ new_width = $ thumbWidth ;
$ new_height = 底薪 ( $高度* ( $ thumbWidth / $宽度) ) ;/ /创建一个新的临时图像
$ tmp_img = imagecreatetruecolor ( $ new_width , $ new_height ) ;/ /复制并调整旧的形象进入新形象
imagecopyresized ( $ tmp_img , $ IMG公司, 0 , 0 , 0 , 0 , $ new_width , $ new_height , $宽度,高度$ ) ;/ /保存缩略图成一个文件
imagegif ( $ tmp_img , “ ( $ pathToThumbs ) ( $ fname ) ” ) ;)
如果( strtolower ( $信息[ '延伸' ] ) == '巴' )
(/ /加载图像并获得图像尺寸
$ IMG公司= imagecreatefrompng ( “ ( $ pathToImages ) ( $ fname ) ” ) ;
$宽度= imagesx ( $ IMG公司) ;
$高度= imagesy ( $ IMG公司) ;/ /计算缩略图大小
$ new_width = $ thumbWidth ;
$ new_height = 底薪 ( $高度* ( $ thumbWidth / $宽度) ) ;/ /创建一个新的临时图像
$ tmp_img = imagecreatetruecolor ( $ new_width , $ new_height ) ;/ /复制并调整旧的形象进入新形象
imagecopyresized ( $ tmp_img , $ IMG公司, 0 , 0 , 0 , 0 , $ new_width , $ new_height , $宽度,高度$ ) ;/ /保存缩略图成一个文件
imagepng ( $ tmp_img , “ ( $ pathToThumbs ) ( $ fname ) ” ) ;)
)
这一工程如何
功能createThumbs需要四个月的论点。
- $ pathToImages -> “文件夹的路径图片档案是个它可能看起来就像这样: / 家庭/内容/用户名/的H TML/列表/上传/
- $ fname -> “文件名: p ic1.gif, j ohnny.jpg等. ..
- $ pathToThumbs -> “文件夹的路径你想的缩略图是个你不想,这是相同的路径p athToImages美元,因为缩略图将有相同名称的原始图像。
- $ thumbWidth -> “的宽度要缩略图将在像素。
一个重要的注意,我要在这里的是,这个功能无关的地方,以外的其他文件扩展名检查,以确保图像文件包含任何恶意。 由于档案createThumbs ( )与已上传假设该文件已被妥善关注。
第一件createThumbs ( )不就是要求pathinfo ( ) 。 pathinfo ( )打破了部分道路成一个数组。 这是对我们有用的,因为我们需要的文件扩展名,妥善创建缩略图。 下一步createThumbs ( )检查是否我们正在处理一个JPEG格式。 如果原始文件是一个JPEG createThumbs创建一个新的形象在原有基础上的形象imagecreatefromjpeg ( ) 。 下一步是要的宽度和高度的图像( imagesx ( ) , imagesy ( ) ) 。 用$ thumbWidth的比例原来的宽度和高度createThumbs ( )设置了新的宽度和高度的缩略图。 利用这些新的比率createThumbs ( )创建一个“空白”的形象将是相同的宽度和高度的缩图与imagecreatetruecolor ( ) 。 imagecopyresized ( )是用来调整图片的大小,并储存在“空白”刚刚创建的。 imagecopyresized ( )似乎是它需要很大的参数,但如果你看看文件真的不是复杂。 现在存在的缩略图作为一个真正的彩色图像createThumbs所有需要做的是转换档案成一个JPEG格式。 要做到这一点imagejpeg ( )被调用 。
这是如何工作的职能JPEG文件。 有起码的分歧。 pngs和。图像。






















