热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php缩图代码是什么,php生成略缩图代码

php生成略缩图代码更新时间:2012年07月16日16:16:22作者:php生成略缩图代码,需要的朋友可以参考下,由于图片的数据量比较

php生成略缩图代码

更新时间:2012年07月16日 16:16:22   作者:

php生成略缩图代码,需要的朋友可以参考下,由于图片的数据量比较大,传递过程相对较长,所以在用户浏览图片时,常常希望先

显示一个图片的缩略图

虽然在HTML中可以通过指定图片的宽度和高度来随意缩放图片,但是这种方法不会减少图片的像素数目。图形文件的尺寸没有改变,当然也不会加快图片下载的速度了。当然也可以手动通过图形软件生成图片的缩略图,但对于大量的图片展示来说,这个工作量将十分巨大。为此微缩图的自动生成程序就被设计出来了。

PHP中提供的imagecopyresized函数就可以用来生成真正的缩赂图片。该函数的标推

语法如下:

语法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,

int srcX,int srcY,int dstW,int dstH,int srcW,int srcH);

返回值:整数

函数种类:图形处理

内容说明:本函数可复制新图,并重新调整图片的大小尺寸。参数都是目的在前,来源在后。参数dst im及src_im为图片的handle。参数dstX、dstY、srcX、srcY分别为目的及来源的坐标。参数dstW、dstH、srcW、srcH分别为来源及目的的宽及高,欲调整的新图的尺寸就在这儿配置。

下面举个例子来说明这个函数的用法,对应的程序thumb.php如程序清单12—5所示。

程序清单12—5 thumb.php

// 本函数从源文件取出图像,设定成指定大小,并输出到目的文件

// 源文件格式:gif,jpg,png

// 目的文件格式:gif

// $srcFile:源文件

// $dstFile: 目标文件

// $dstW:目标图片宽度

// $dstH:目标文件高度

function makethumb($srcFile,$dstFile,$dstW,$dstH)

{

$data = GetImageSize($srcFile,&$info);

switch ($data[2])

{

case 1:

$imgsrc = @ImageCreateFromGIF($srcFile);

break;

case 2:

$imgsrc = @ImageCreateFromJPEG($srcFile);

break;

case 3:

$imgsrc = @ImageCreateFromPNG($srcFile);

break;

}

$srcW = ImageSX($imgsrc);

$srcH = ImageSY($imgsrc);

$ni = ImageCreate($dstW,$dstH);

ImageCopyResized($ni,$imgsrc,0,0,0,0,$dstW,$dstH,$srcW,$srcH);

Imagegif($ni,$dstFile);

// 如果需要输出到浏览器,那么将上一句改为 ImageJpeg($ni);

// 如果需要其他格式的图片,改动最后一句就可以了

}

?>

在这个例子中,首先通过getimagesize()函数获得源图片的情况,再用 imagecreatefromgif()、

imagecreatefromjpeg()或imagecreatefrompng()创建一个源位图$imgsrc,然后用

imagecreate()函数创建一个目标位图,其长、宽各是源位图的一半。然后调用imagecopyresized()

函数,将源位图缩小后拷贝到目标位图中,最后再用imagegif()函数生成缩略图。

这里所用到的图形处理函数就是由安装的GD库提供的,现对其分别进行说明。首先

介绍getimagesize()函数,其标准语法如下。

语法:array getimagesize(string filename,array [imageinfo]);

返回值:数组

函数种类:图形处理

内容说明:本函数可用来取得GIF、JPEG及PNG 3种WWW上图片的高与宽,不需要安装GD library就可以便用本函数。返回的数组有4个元素,返回数组的第一个元素(索引值0)是图片的高度,单位是像素(pixel);第二个元素(索引值1)是图片的宽度;第三个元素(索引值2)是图片的文件格式,其值1为GIF格式、2为JPEG/JPG格式、3为PNG格式;

第四个元素(索引值3)为图片的高与宽字符串,height=xxx width=yyy。

通过getimagesize()函数的应用,能轻易获取图片的各种信息。下面给大家举一个获取图片宽度、高度、格式、文件大小的信息的例子,来进一步领会getimagesize()函数的使用 技巧。

程序imginfo如程序清单12—6所示。

程序清单12-6 imginfo.php

function getImageInfo($img) //$img为图像文件绝对路径

{

$img_info = getimagesize($img);

switch ($img_info[2])

{

case 1:

$imgtype = "GIF";

break;

case 2:

$imgtype = "JPG";

break;

case 3:

$imgtype = "PNG";

break;

}

$img_type = $imgtype."图像";

$img_size = ceil(filesize($img)/1000)."k"; //获取文件大小

$new_img_info = array (

"width"=>$img_info[0],

"height"=>$img_info[1],

"type"=>$img_type,

"size"=>$img_size

);

print " width";

print $img_info[0];

print " height";

print $img_info[1];

print " format";

print $img_type;

print " size";

print $img_size;

print $new_img_info;

}

$img = "/www/htdocs/images/jf.gif";

getImageInfo($img);

?>

在程序12-5中要创建一个缩略图,需要先创建一个用来绘图的空白的画布。

ImageCreate函数可以做到这一点。它将返回一个图像的标识符,并且需要告诉函数用像素

计算的画布有多大(x(宽度)与y(高度))。在程序12-5中用到的图形创建函数imagecreate()

的标准语法如下:

语法:int imagecreate(int x_size,int y_size);

返回值:整数

函数种类:图形处理

内容说明:本函数用来建立一张全空的图形。参数x_size、y_size为图形的尺寸,单位

为像素(pixel)。

如果要从已经存在的图片中取出图片文件代码,可以用imagecreatefromgif()、

imagecreatefromjpeg()或imagecreatefrompng(),例如函数imagecreatefromgif()就是从一个GIF

格式的图片文件中取出对应的图片源代码,其标准语法如下:

语法:int imagecreatefromgif(string filename);

返回值:整数

函数种类:图形处理

内容说明:本函数用来取出一张GIF格式图形,通常作为背景或者基本的画布样本使

用。参数filename可以是本地端的文件,也可以是网络的URL地址。返回值为GIF的文件

代码,可供其他函数使用。

在将源位图缩小后拷贝到目标位图中时,用到了imagecopyresized()函数,此函数可以

复制新图并调整大小,其标准语法如下:

语法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,int srcX,int srcY,

int dstW,int dstH,int srcW,int srcH);

返回值:整数

函数种类:图形处理

内容说明:本函数可复制新图,并重新调整图片的大小尺寸。参数那是目的在前,来

源在后。参数ddst_im及src_im为图片的handle。参数dstX、dstY、srcX、srcY分别为目的

及来源的坐标。参数dstW、dstH、srcW、srcH分别为来源及目的的宽及高,若欲调整新图

的尺寸就在这里配置。

最后在输出图像时用到的imagegif()函数的标准语法如下:

语法:int imagegif(int im,string [filename]);

返问值:整数

函数种类:图形处理

内容说明:本函数用来建立一张GIF格式图形。参数im为使用ImageCreate()所建立

的图片代码,参数filename可省略,若无本参数filename,则会将图片直接送到浏览器端,

记得在送出图片之前要先送出使用Content-type:image/gif的标头字符串(header)到浏览器

端,以顺利传输图片。若要使用透明背景的GIF图,也就是GIF89a的格式,需要先使用

ImageColorTransparent()配置透明背景。本函数产生的GIF图,由于有版权的问题,因此

在商业上的使用还要多加考虑。

相关文章

1a1b05c64693fbf380aa1344a7812747.png

这篇文章主要介绍了php安装swoole扩展的方法,以OS X操作系统为例分析了swoole扩展的安装技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-03-03

4f55910a645b073bc4fc65dc10dc14bd.png

php tree 无限分类代码,需要的朋友可以参考下。2009-12-12

0ea3c7666119d5615e582f823fb3fad6.png

这篇文章我们给大家一个完整的通过php获取手机端的号码以及ip地址实例代码,需要的朋友们可以测试参考下。2018-09-09

4f96a78db829b1556ff16de21e013c7a.png

这篇文章主要为大家详细介绍了一个非常实用的php文件上传类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-07-07

8cc1031babc6aff2319f1c6af8544aa0.png

在本篇文章里我们给大家整理了关于php输出文字乱码的解决方法以及相关知识点,有需要的朋友们学习下。2019-10-10

0c932a99bb7b6f23c937db507070cc7b.png

PHP 字符串操作入门教程...2006-12-12

cca732bf65a93ed2ec0ac80c638460fe.png

抽象方法指没有方法体的方法,只要一个类里面有一个方法是抽象方法,那么这个类就要定义为抽象类,不了解的朋友可以看看2014-10-10

2d9f31f2af7b675a3d153d2b7f1035a7.png

自动分页的不完整解决方案...2007-01-01

b452cee8ec5cd9e58ab98eba17281e59.png

这篇文章主要介绍了PHP中的自动加载操作实现方法,结合实例形式详细分析了php自动加载的概念、原理、实现方法及相关操作注意事项,需要的朋友可以参考下2019-08-08

f4838ec7e2d4da28e0b57d4e852dadd4.png

本篇文章是对php获取本地IP代码进行了详细的分析介绍,需要的朋友参考下2013-06-06

最新评论



推荐阅读
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • zabbix中文乱码的问题
    在使用zabbix时,有时候会出现中文乱码的问题,如下:因为zabbix自身对中文简体的支持不完善,需要我们手动的去上传新的字体进行替换:1、在windows获取字体库文件在Windows上的 ... [详细]
  • Python 可视化 | Seaborn5 分钟入门 (六)——heatmap 热力图
    微信公众号:「Python读财」如有问题或建议,请公众号留言Seaborn是基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seabo ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 小程序wxs中的时间格式化以及格式化时间和date时间互转
    本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
author-avatar
mobiledu2502862117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有