首页 > 编程知识 正文

为什么用php的gd库压缩图片(PHP压缩图片)

时间:2023-12-24 12:11:50 阅读:321576 作者:TNKB

本文目录一览:

php等比缩放图片,就是只按宽度缩小图片,当图片宽度大于750时就缩小到750 高度不用管 跟着宽度缩就行了

首先说一下思路,首先你要判断图片的宽度,这需要用到一个函数,个人比较喜欢用getimagesize()

其次是等比例绽放,需要用到imagecopyresized(当然还有其他函数)

注意:我这里用到的是gd库

实现:

写一个函数或者类都行,我这里就以面向过程的方式来写,你可以整理一下

$file = 'pic.jpg'; //原图片文件

$maxWidth = 750;

$info = getimagesize($file); //取得一个图片信息的数组,索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记

if($info[0] $maxWidth )

{

exit('图片小于'.$maxWidth.',不需要缩放');

}

$im = imagecreatefromjpeg($file); //根据图片的格式对应的不同的函数,在此不多赘述。

$rate = $maxWidth/$info[0]; //计算绽放比例

$maxHeight = floor($info[1]*$rate); //计算出缩放后的高度

$des_im = imagecreatetruecolor($maxWidth,$maxHeight); //创建一个缩放的画布

imagecopyresized($des_im,$im,0,0,0,0,$maxWidth,$maxHeight,$info[0],$info[1]); //缩放

imagejpeg($des_im,'thumb.jpg'); //输出到thumb.jpg即为一个缩放后的文件

GD库是什么,功能是什么

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从 GD 库 1.6 版起所有的 GIF 支持都移除了,但是又在 GD 库 2.0.28 版起又加了回来。如果使用二者之间版本的 GD 库时 GIF 相关函数不可用。

php 怎么压缩图片的大小

php 压缩图片的大小:

?php

$im = imagecreatefromjpeg('D:phpplace.jpeg');

resizeImage($im,,,'xinde','.jpg');

function resizeImage($im,$maxwidth,$maxheight,$name,$filetype)

{

$pic_width = imagesx($im);

$pic_height = imagesy($im);

echo "start-----------------" ;

if(($maxwidth  $pic_width  $maxwidth)  ($maxheight  $pic_height  $maxheight))

{

if($maxwidth  $pic_width$maxwidth)

{

$widthratio = $maxwidth/$pic_width;

$resizewidth_tag = true;

}

if($maxheight  $pic_height$maxheight)

{

$heightratio = $maxheight/$pic_height;

$resizeheight_tag = true;

}

if($resizewidth_tag  $resizeheight_tag)

{

if($widthratio$heightratio)

$ratio = $widthratio;

else

$ratio = $heightratio;

}

if($resizewidth_tag  !$resizeheight_tag)

$ratio = $widthratio;

if($resizeheight_tag  !$resizewidth_tag)

$ratio = $heightratio;

$newwidth = $pic_width * $ratio;

$newheight = $pic_height * $ratio;

if(function_exists("imagecopyresampled"))

{

$newim = imagecreatetruecolor($newwidth,$newheight);

imagecopyresampled($newim,$im,,,,,$newwidth,$newheight,$pic_width,$pic_height);

}

else

{

$newim = imagecreate($newwidth,$newheight);

imagecopyresized($newim,$im,,,,,$newwidth,$newheight,$pic_width,$pic_height);

}

$name = $name.$filetype;

imagejpeg($newim,$name);

imagedestroy($newim);

}

else

{

$name = $name.$filetype;

imagejpeg($im,$name);

}

}

php中使用GD库压缩图片只压缩宽度 高度不变应该如何处理

如果高度不变的话:

function resize($src,$w)

{

.....

imagecopyresized($temp_img, $im, 0, 0, 0, 0, $w, $height, $width, $height);

.....

}

顺便提一句,我把你的代码调试了一下,感觉有几个地方代码有点迷惑:

1. $savepath="{$dir}/{$name}";//缩略图保存路径,新的文件名为*.thumb.jpg

从代码上看貌似生成不了这样的文件名。

2. getImageInfo($src)、 create($src) 都不是系统函数

请问php中使用GD库函数进行图像处理的缺点是什么?

如楼上所言,但个人认为 既然是缩略图,模糊一点没什么所谓啦;

另一点就是,用GD库处理透明的GIF有点问题,好像会变黑色背景;

还有一个是处理GIF动画好像会变成单帧GIF图像

php_gd2.dll是什么,它有什么用啊

GD库扩展文件,用户处理图片,如生成图片,图片裁剪压缩,给图片打水印等等操作

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。