如何使缩略图使用PHP

张贴在职能 PHP的ShortLikeAFox关于2008年7月22日

所以,你想创建一个缩略图从某一图片...的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和。图像。