• 【黄啊码】PHP压缩图片(简洁易懂版,不懂我下次不写)


    大家好,我是黄啊码,今天我们来解决一件头疼的事情。作为技术人员,我们一般传图片都知道尽量传清晰和大小适中的图片,部署的时候当然也希望客户能按说明办事,但有的客户偏偏不听,就传大的,就传大的,最终后宫服务器三千都顶不住他们的折腾,程序员心里苦,但不敢说啊,只能让代码自行解决吧。

    解决前提:php版本*1,服务器*1,数据库(不需要,扔了吧)

    备用函数:imagecreatetruecolor、imagecopyresampled、image_type_to_extension、getimagesize、imagedestroy

    php实现图片压缩的方法:首先通过getimagesize获取图片属性,接着将原图复制到图片载体上,并按照一定比例压缩;最后输出图片即可。

    很简单吧?

    简单我就不用写教程了,你也不用看到这篇文章了。来,大郎,随我一起走:

    list($width, $height, $img_type, $attr) = getimagesize($img);//获取图片大小等属性

    //构建跟该图片属性一样的图片对象
    $imageinfo = array( 'width' => $width, 'height' => $height, 'type' => image_type_to_extension($img_type, false), 'attr' => $attr );

    //用fun函数执行
    $fun = "imagecreatefrom" . $imageinfo['type'];

    $image = $fun($img); 

    //注意这里的percent,是压缩的比例,比如压缩10%,那percent=90%; 


    new_width = $imageinfo['width'] * $percent;

    $new_height = $imageinfo['height'] * $percent;

    $image_thump = imagecreatetruecolor($new_width, $new_height);

    //将原图复制带图片载体上面,并且按照一定比例压缩,极大的保持了清晰度 imagecopyresampled($image_thump, $image, 0, 0, 0, 0, $new_width, $new_height, $imageinfo['width'], $imageinfo['height']);

    //最后自己new出来的资源别忘了销毁,别让人知道你还不会

    imagedestroy($image);

    //可图片在哪?不着急,还在。别忘了告诉代码你要生成什么类型的图片

    $image = $image_thump;

    $func = 'image' . $imageinfo['type'];

    //然后告诉他你要生成在哪里,记住服务器资源有限,别到处乱生,不然以后滴血认亲都找不到它

    $func($image,"图片生成地址")

    至此,php压缩图片到处完成,还会不会?会了赶紧关掉啊,别让boss以为你整天只会百度!

    好了,今天的课程学到这里,有问题的留个言,别忘了一键三连,下次我们还会再见!

    我是黄啊码,码字的码,退。。。退。。。退。。。朝! 

  • 相关阅读:
    微信小程序与idea后端如何进行数据交互
    面试官让我用Flex写色子布局,我直接给写了6个
    MySQL必知必会 学习笔记
    Spring加载的过程
    天黑了、让我为你关窗帘吧
    删除两个字典中非公共的键和值
    【JDK笔记】ParNew回收器:并行回收
    golang make和new的区别
    罗马和汉朝的对比
    [JS]学习笔记2 -- JAVAScript数据类型
  • 原文地址:https://blog.csdn.net/TiaoZhanJi_Xian/article/details/127786263