浅谈关于PHP解决图片无损压缩的问题
发布时间 - 2026-01-11 03:04:07 点击率:次本文介绍了关于PHP解决图片无损压缩的问题,分享给大家,具体如下:

代码如下:
header("Content-type: image/jpeg");
$file = "111.jpg";
$percent = 1.5; //图片压缩比
list($width, $height) = getimagesize($file); //获取原图尺寸
//缩放尺寸
$newwidth = $width * $percent;
$newheight = $height * $percent;
$src_im = imagecreatefromjpeg($file);
$dst_im = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($dst_im, $src_im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($dst_im); //输出压缩后的图片
imagedestroy($dst_im);
imagedestroy($src_im);
我发现用php的imagecopyresized把大图片缩成小图片时,图片会变得很模糊,这时候要提升清晰度不如用 imagecopyresampled 代替 imagecopyresized也许会更好。
注:压缩有损失是必然的,看的清楚与否实际上就是是否接受这个范围的问题.比如你图像上原图有些点是2px,但是你压缩5倍,那么这些点就会消失。
<?php
/**
* desription 压缩图片
* @param sting $imgsrc 图片路径
* @param string $imgdst 压缩后保存路径
*/
function image_png_size_add($imgsrc,$imgdst){
list($width,$height,$type)=getimagesize($imgsrc);
$new_width = ($width>600?600:$width)*0.9;
$new_height =($height>600?600:$height)*0.9;
switch($type){
case 1:
$giftype=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);
imagejpeg($image_wp, $imgdst,75);
imagedestroy($image_wp);
}
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);
imagejpeg($image_wp, $imgdst,75);
imagedestroy($image_wp);
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);
imagejpeg($image_wp, $imgdst,75);
imagedestroy($image_wp);
break;
}
}
/**
* desription 判断是否gif动画
* @param sting $image_file图片路径
* @return boolean t 是 f 否
*/
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;
}
?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# PHP
# 图片无损压缩
# png无损压缩
# PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
# PHP图片裁剪函数(保持图像不变形)
# PHP图像识别技术原理与实现
# PHP中绘制图像的一些函数总结
# php图像处理函数大全(推荐收藏)
# php使用imagick模块实现图片缩放、裁剪、压缩示例
# 基于PHP实现等比压缩图片大小
# PHP添加图片水印、压缩、剪切的封装类
# php高清晰度无损图片压缩功能的实现代码
# PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
# 就会
# 片时
# 得很
# 给大家
# 也许会
# 如你
# 大家多多
# 小图
# 如用
# 压缩比
# 判断是否
# 这时候
# 大图片
# 我发现
# 但是你
# 是必然
# dst_im
# imagejpeg
# imagecopyresized
# imagecreatetruecolor
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
详解Android——蓝牙技术 带你实现终端间数据传输
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel如何与Pusher实现实时通信?(WebSocket示例)
如何彻底删除建站之星生成的Banner?
如何快速查询网址的建站时间与历史轨迹?
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
如何在香港免费服务器上快速搭建网站?
Windows Hello人脸识别突然无法使用
如何快速使用云服务器搭建个人网站?
如何快速查询域名建站关键信息?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Laravel怎么在Blade中安全地输出原始HTML内容
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Laravel如何为API生成Swagger或OpenAPI文档
高防服务器租用如何选择配置与防御等级?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
香港服务器如何优化才能显著提升网站加载速度?
python中快速进行多个字符替换的方法小结
如何快速辨别茅台真假?关键步骤解析
Laravel如何配置任务调度?(Cron Job示例)
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
创业网站制作流程,创业网站可靠吗?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
免费视频制作网站,更新又快又好的免费电影网站?
使用Dockerfile构建java web环境
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Laravel集合Collection怎么用_Laravel集合常用函数详解
独立制作一个网站多少钱,建立网站需要花多少钱?
如何利用DOS批处理实现定时关机操作详解
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
如何在IIS服务器上快速部署高效网站?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
iOS正则表达式验证手机号、邮箱、身份证号等
如何基于云服务器快速搭建网站及云盘系统?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
高端建站三要素:定制模板、企业官网与响应式设计优化

