PHP生成缩略图的实现

PHP令我们惊喜的就是在图形图象处理方面要忧于ASP,用GD库PHP就可以轻松的实现缩略图。这一篇文章我们的目的就是用GD来生成缩略图,PHP可以把缩略图直接生成输送到浏览器也可以以文件的形式把其存储到硬盘当中。

在生成缩略图的过程当中我们需要用到GD库当中的几个函数:

getimagesize(string filename [,array var])),取得图像的信息,返回值是一人array,包括几项信息$var[0]----返回图像的width,$var[1]----返回height,[2]返回图像文件的type,[4]返回的是与<img src="">当中的wdith,height有关的width="",height=""信息。

imageX(resource image)

imageY(resource image) 返回图像的宽和高

imagecopyresized(des img,src img,int des_x,int des_y,int src_x,int src_y,int des_w,int des_h,int src_w,int src_y) 复制并截取区域图像

imagecreatetruecolor(int width,int height) 创建一个真彩图

imagejpeg(resource image)

下面就是Code:

<?php
# Constants
define(IMAGE_BASE, '/var/www/html/mbailey/images');
define(MAX_WIDTH, 150);
define(MAX_HEIGHT, 150);

# Get image location
$image_file = str_replace('..', '', $_SERVER['QUERY_STRING']);
$image_path = IMAGE_BASE . "/$image_file";

# Load image
$img = null;
$ext = strtolower(end(explode('.', $image_path)));
if ($ext == 'jpg' || $ext == 'jpeg') {
$img = @imagecreatefromjpeg($image_path);
} else if ($ext == 'png') {
$img = @imagecreatefrompng($image_path);
# Only if your version of GD includes GIF support
} else if ($ext == 'gif') {
$img = @imagecreatefrompng($image_path);
}

# If an image was successfully loaded, test the image for size
if ($img) {

时间: 2024-11-02 09:56:27

PHP生成缩略图的实现的相关文章

php-关于安卓客户端向服务器传送图片并生成缩略图的问题

问题描述 关于安卓客户端向服务器传送图片并生成缩略图的问题 我本来是在安卓客户端生成缩略图的,然后和原图一起发送到服务器,现在改用在服务器端用php生成缩略图,本机实验成功,但是如果是客户端传来的图片,只能保存原图,不能用服务器生成缩略图.我判断了一下,因为生成缩略图要用$src_image=ImageCreateFromBMP($uploads_dir.$uploadname)来调用原图,是不是因为客户端向服务器端发送时,原图还未上传好就调用原图引发错误了?可是我已经加了一个if(move_u

ASP保存远程图片到本地,并生成缩略图

ASP通过XMLHTTP获取远程图片流数据,并保存到本地,把第一张采集到的图片生成缩略图. 具体代码如下: <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderPath ------文件夹地址 '================================================== Function CheckDir2(byval Folder

JSP上传图片并生成缩略图

js|上传|上传图片|缩略图 本例子使用了jspsmart组件进行上传,这里可以免费下载该组件www.jspsmart.com下载解压后,将jar包复制到 \WEB-INF\lib 目录后重启服务器,jspsmart即可正常使用了 1.uploadimage.jsp <%@ page contentType="text/html;charset=gb2312" language="java" import="java.io.*,java.awt.Im

关于生成缩略图的问题,各位大侠请进来

缩略图|问题 从网上找来了从jpg文件生成缩略图的程序,略加改动变成下面的程序,现在这个程序可以将一个jpg文件的缩略图直接输出,但我想在网页的某个位置插入一个或者多个缩略图以方便我编辑图片的时候有所依据,但下面的这个函数在输出的时候出现很多乱码,如何解决呢?<?function makethumb($srcFile,$dstW,$dstH, $type='png') { $data = GetImageSize($srcFile,&$info); switch ($data[2]) { c

按照比例改变图片大小(非生成缩略图)

  <? /**      按照比例改变图片大小(非生成缩略图)      @param string $img 图片路径      @param int $max_w 最大缩放宽      @param int $max_h 最大缩放高  */  function chImageSize ($img,$max_w,$max_h)  {      $size = @getimagesize($img);          $w = $size[0];          $h     =    $

如何实现将用户上传的文件生成缩略图!

上传|缩略图 具体给个例子就清楚啦..如下:System.Web.HttpPostedFile UpFile = UpMhtFile.PostedFile; System.IO.Stream StreamObject = UpFile.InputStream; System.IO.FileStream myStream = new System.IO.FileStream(UpFile.FileName,System.IO.FileMode.Open,System.IO.FileAccess.R

用AspJpeg组件,按宽高比例,真正生成缩略图

aspjpeg|缩略图 在网站前台产品展示时,一般用缩略图,点击进入然后看到大图.缩略图带来了两个烦劳:1.如果后台只传一张大图,显示缩略图时只是将大图固定宽度和高度,这样不但造成缩略图变形,而且使得页面访问速度缓慢.2.如果后台每次上传时,都上传两张图片,一张大图,一张缩略图.这样的话,没有1中的问题,但是给后台人员造成很大麻烦.因为后台人员并不一定知道处理生成缩略图:即使知道并能快速处理,也浪费掉一些时间. 下面的代码可以帮您用AspJpeg组件,按宽高比例,真正生成缩略图AspJpeg组件

给图片生成缩略图和加版权的类

缩略图 给图片生成缩略图和加版权的类 最近几天看了一下PHP的图片处理方面的功能,以前这方面的需求比较少,也就没怎么看,最近有空看了一下.感觉图片处理一些简单的功能还可以,复杂的就算了,GD库都2.0.1了,还是不支持中文,看了几篇文章,想使用中文只能先将GB2312转换成UNICODE再写入图片,太麻烦了,索性只使用英文算了. 在图像生成部分可以定义图片的最大高,宽,比较适用于新闻及相册等系统. GD2.0.1在图片处理上有很大提高,我试了下imageCopyResized和imageCopy

给图片添加水印(支持中文)并生成缩略图

缩略图|中文 <? // **************************************** // // 功能:给图片添加水印(支持中文)并生成缩略图 // 参数: $srcFile 图片文件名 // $dstFile 另存图片文件名 // $markwords 水印文字内容 // $markimage 水印图片地址 // $dstW 图片保存宽度 // $dstH 图片保存高度 // $rate 图片保存品质 // ********************************

用GD生成生成缩略图的两个选择和区别

区别|缩略图 PHP的GD扩展提供了两个函数来缩放图像: ImageCopyResized(dest, src, dx, dy, sx, sy, dw, dh, sw, sh);ImageCopyResampled(dest, src, dx, dy, sx, sy, dw, dh, sw, sh); ImageCopyResized( )函数在所有GD版本中有效,但其缩放图像的算法比较粗糙,可能会导致图像边缘的锯齿.GD 2.x中新增了一个ImageCopyResampled( )函数,其像素