Thinkphp压缩图片

Wesley13
• 阅读 488

/**
* desription 压缩图片
* @param sting $imgsrc 图片路径
* @param string $imgdst 压缩后保存路径
*/
public function compressedImage($imgsrc, $imgdst) {
list($width, $height, $type) = getimagesize($imgsrc);
$new_width = $width;//压缩后的图片宽
$new_height = $height;//压缩后的图片高
//$new_width = ($width>600?600:$width)*0.9;
//$new_height =($height>600?600:$height)*0.9;
switch ($type) {
case 1:
$giftype = $this->check_gifcartoon($imgsrc);
if ($giftype) {
header('Content-Type:image/gif');
$image_wp = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromgif($imgsrc);
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
//90代表的是质量、压缩图片容量大小
imagejpeg($image_wp, $imgdst, 90);
imagedestroy($image_wp);
imagedestroy($image);
}
break;
case 2:
header('Content-Type:image/jpeg');
$image_wp = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($imgsrc);
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
//90代表的是质量、压缩图片容量大小
imagejpeg($image_wp, $imgdst, 90);
imagedestroy($image_wp);
imagedestroy($image);
break;
case 3:
header('Content-Type:image/png');
$image_wp = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefrompng($imgsrc);
imagecopyresampled($image_wp, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
//90代表的是质量、压缩图片容量大小
imagejpeg($image_wp, $imgdst, 90);
imagedestroy($image_wp);
imagedestroy($image);
break;
}
}

/**
* desription 判断是否gif动画
* @param sting image_file图片路径
* @return boolean t 是 f 否
*/

public function check_gifcartoon($image_file){

$fp = fopen($image_file,'rb');

$image_head = fread($fp,1024);

fclose($fp);

return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head)?false:true;

}

点赞
收藏
评论区
推荐文章
刚刚好 刚刚好
1年前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
Jacquelyn38 Jacquelyn38
2年前
手把手教你实现一个图片压缩工具(Vue与Node的完美配合)
前言图片压缩对于我们日常生活来讲,是非常实用的一项功能。有时我们会在在线图片压缩网站上进行压缩,有时会在电脑下软件进行压缩。那么我们能不能用前端的知识来自己实现一个图片压缩工具呢?答案是有的。效果展示原图片大小:82KB压缩后的图片大小:17KB测试是不是特别good!!!看到上面的压缩后的图片,可能你还会质疑图片的清晰度,那么看下面(第一张图为压缩后的图片
Easter79 Easter79
2年前
springmvc 图片 压缩上传
第一步,下载相关js文件https://blogstatic.cnblogs.com/files/linxixinxiang/compression.js第二步,建立jsp页面1<%@pagelanguage"java"import"java.util."contentType"text/html;char
Wesley13 Wesley13
2年前
java对图片进行压缩和resize
序这里展示一下如何对图片进行压缩和resize。压缩publicstaticbooleancompress(Stringsrc,Stringto,floatquality){booleanrstrue;//Buildparam
Stella981 Stella981
2年前
Linux递归压缩图片脚本
1压缩图片使用ImageMagick的convert命令进行压缩图片,一般只需要一个指定压缩质量的参数,比如:convertquality751.jpg1_compress.jpg可以支持压缩jpg/png/jpeg。2递归压缩递归压缩使用find配合g
Stella981 Stella981
2年前
Android 图片压缩工具,仿微信朋友圈压缩策略。
项目描述目前做App开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压缩成为一个很重要的问题。单纯对图片进行裁切,压缩已经有很多文章介绍。但是裁切成多少,压缩成多少却很难控制好,裁切过头图片太小,质量压缩过头则显示效果太差。于是自然想到App巨头“微信”会是怎么处理,Luban(鲁班)就是通过在微信朋友圈发送近10
Wesley13 Wesley13
2年前
JS 图片压缩
👆  这是第 47 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~本文首发于政采云前端团队博客:JS图片压缩https://www.zoo.team/article/imagecompress!(https://oscimg.oschina.net/oscnet/4da76
Wesley13 Wesley13
2年前
CSS如何让多个图片无缝水平排列,高度相同
以三张图片为例html<divclass"img\_container"<div<imgsrc"../img/cake1.jpg"alt""</div<div<imgsrc"../img/cake2.JPG"alt""</div<div<imgsrc"../img/cake3.pn
Wesley13 Wesley13
2年前
Java图片压缩
packagecom.test;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGImageEncoder;importorg.junit.Test;importjavax.imageio.
Stella981 Stella981
2年前
Guetzli:谷歌家的东西可能也没有想像的辣么美
望昕宇,腾讯后台工程师,专注图片压缩及存储系统一百年不动摇,并致力于做一名相关前沿技术的人话翻译家。这两天笔者的朋友圈被Google开源JPEG编码器Guetzli刷屏,“图片大小减小35%”、“质量不变”这样的字眼刺激了我们的肾上腺,OMG的yajunwang同学也为我们带来了第一手的测试资料——谷歌开源图片压缩算法Guetzli实测体验报告(