PHP创建缩略图造成图片质量低下的完美解决方法
近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图
以上来使用imagecopyresized这个函数,显示质量很差如图
后来改用imagecopyresampled效果明显改变效果如图
付上完整代码
/*** @name thum 缩略图函数* @param sting $img_name 图片路径* @param int $max_width 略图最大宽度* @param int $max_height 略图最大高度* @param sting $suffix 略图后缀(如"img_x.jpg"代表小图,"img_m.jpg"代表中图,"img_l.jpg"代表大图)* @return void*/function thum($img_name,$max_width,$max_height,$suffix){ $img_infos=getimagesize($img_name); $img_height=$img_infos[0];//图片高 $img_width=$img_infos[1];//图片宽 $img_extension='';//图片后缀名 switch($img_infos[2]){ case 1: $img_extension='gif'; break; case 2: $img_extension='jpeg'; break; case 3: $img_extension='png'; break; default: $img_extension='jpeg'; break; } $new_img_size=get_thum_size($img_width,$img_height,$max_width,$max_height);//新的图片尺寸 //print_r($new_img_size); //die('test'); $img_func='';//函数名称 $img_handle='';//图片句柄 $thum_handle='';//略图图片句柄 switch($img_extension){ case 'jpg': $img_handle=imagecreatefromjpeg($img_name); $img_func='imagejpeg'; break; case 'jpeg': $img_handle=imagecreatefromjpeg($img_name); $img_func='imagejpeg'; break; case 'png': $img_handle=imagecreatefrompng($img_name); $img_func='imagepng'; break; case 'gif': $img_handle=imagecreatefromgif($img_name); $img_func='imagegif'; break; default: $img_handle=imagecreatefromjpeg($img_name); $img_func='imagejpeg'; break; } /****/ $quality=100;//图片质量 if($img_func==='imagepng' && (str_replace('.', '', PHP_VERSION)>= 512)){//针对php版本大于5.12参数变化后的处理情况 $quality=9; } /****/ $thum_handle=imagecreatetruecolor($new_img_size['height'],$new_img_size['width']); if(function_exists('imagecopyresampled')){ imagecopyresampled($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width); }else{ imagecopyresized($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width); } call_user_func_array($img_func,array($thum_handle,get_thum_name($img_name,$suffix),$quality)); imagedestroy($thum_handle);//清除句柄 imagedestroy($img_handle);//清除句柄 }/*** @name get_thum_size 获得缩略图的尺寸* @param $width 图片宽* @param $height 图片高* @param $max_width 最大宽度* @param $maxHeight 最大高度* @param array $size;*/function get_thum_size($width,$height,$max_width,$max_height){ $now_width=$width;//现在的宽度 $now_height=$height;//现在的高度 $size=array(); if($now_width>$max_width){//如果现在宽度大于最大宽度 $now_height*=number_format($max_width/$width,4); $now_width= $max_width; } if($now_height>$max_height){//如果现在高度大于最大高度 $now_width*=number_format($max_height/$now_height,4); $now_height=$max_height; } $size['width']=floor($now_width); $size['height']=floor($now_height); return $size; }/***@ name get_thum_name 获得略图的名称(在大图基础加_x)*/function get_thum_name($img_name,$suffix){ $str=explode('#',$img_name); $str1=explode('.',$str[1]); return $str[0].'_'.$suffix.'.'.$str1[1]; }

打开img文件的方法有使用虚拟光驱软件打开、使用压缩软件打开和使用专用工具打开。详细介绍:1、使用虚拟光驱软件打开,下载并安装一个虚拟光驱软件,右键单击img文件,选择“打开方式”或“关联程序”,在弹出的对话框中选择安装的虚拟光驱软件,虚拟光驱软件会自动加载img文件,并将其作为虚拟光驱中的光盘映像,双击虚拟光驱中的光盘图标,即可打开img文件并访问其中的内容等等。

img文件打开的方式:1、确认img文件路径;2、使用img文件打开器;3、选择打开方式;4、查看图片;5、保存图片。img文件是一种常用的图像文件格式,通常用于存储图片数据。

img是一种文件压缩格式,主要是为了创建软盘的镜像文件,它可以用来压缩整个软盘或整片光盘的内容;使用“.IMG”这个扩展名的文件就是利用这种文件格式来创建的;img文件包括3个基本节点,分别是“Ehfa_HeaderTag”、“Ehfa_File”和“Ehfa_Entry”。

在html5中,width的意思是宽度,width属性定义元素内容区的宽度,在内容区外面可以增加内边距、边框和外边距,只需要给元素设置“元素{width:数值}”即可。

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code<form name="myform"

U盘是经常用到的储存设备之一,那在使用过程中也会出现一些小问题,比如:U盘读不出,那该怎么解决呢?收好!u盘读不出来?4步教你轻松解决在U盘已经插到电脑的基础上点击开始菜单,选中控制面板收好!u盘读不出来?4步教你轻松解决在控制面板里找到并双击设备管理器。收好!u盘读不出来?4步教你轻松解决在设备管理器的主界面找到通用串行总线控制器收好!u盘读不出来?4步教你轻松解决找到usb大容量存储设备,选中它点击右键找到卸载收好!u盘读不出来?4步教你轻松解决欢迎留言讨论哟!

CSS维度属性详解:height和width在前端开发中,CSS是一种强大的样式定义语言。其中,height和width是两个最基本的维度属性,用于定义元素的高度和宽度。本文将对这两个属性进行详细解析,并提供具体的代码示例。一、height属性height属性用于定义元素的高度。可以使用像素(pixel)、百分比(percentage)或者

jquery改变img src属性的方法:1、使用attr()属性,语法“$("img").attr("src","图片文件的地址")”;2、使用prop()方法,语法“$("img").prop("src","图片文件的地址")”。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器