如何使缩略图使用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 - “文件夹的路径的图像文件是以下这可能是这个样子: /首页/内容/用户名/的HTML /列表/上传/
- $ fname - “文件名: pic1.gif , johnny.jpg等...
- $ pathToThumbs - “文件夹的路径您想要缩略图是个你不想这是相同的路径为$ pathToImages ,因为缩略图将有相同名称的原始图像。
- $ thumbWidth - “的宽度要小的像素。
一个重要的注意,我要在这里的是,这一职能中的任何地方,而不是文件扩展名检查,以确保图像文件包含任何恶意。 由于档案createThumbs ( )与已上载假定文件已被适当地关注。
的第一件事createThumbs ( )的作用是呼吁pathinfo ( ) 。 pathinfo ( )休息,部分道路成一个数组。 这是帮助我们,因为我们需要的文件扩展名正确地创建缩略图。 下一步createThumbs ( )检查是否我们正在处理一个JPEG格式。 如果原始文件是一个JPEG createThumbs创建一个新的形象在原有基础上的形象imagecreatefromjpeg ( ) 。 下一步是获得的宽度和高度的这种形象( imagesx ( ) , imagesy ( ) ) 。 $ thumbWidth和使用的比率原始的宽度和高度createThumbs ( )设置了新的宽度和高度的缩略图。 使用这些新的比率createThumbs ( )创建一个“空白”的形象,将是相同的宽度和高度缩图与imagecreatetruecolor ( ) 。 imagecopyresized ( )是用来调整图片的大小,然后将其保存在“空白”刚创建。 imagecopyresized ( )似乎是需要很大的参数,但如果你看看真正的文件并不复杂。 现在缩图存在一个真正的彩色图像所有createThumbs需要做的是转换的文件转换成JPEG格式。 为此imagejpeg ( )被称为。
这是如何工作的职能JPEG文件。 有起码的分歧。 pngs和。图像。






















