‘壹’ 如何压缩已上传的服务器中的图片,有没有好用的php页面源码
你的服务器是什么系统? WINDOWS还是LINUX?
WINDOWS的话你可以另外开发一个软件放在服务器上,实时监测是否有新的图片上传上来,有的话你就执行图片的大小尺寸或者图片画质的压缩,当然你的软件也可以通过访问你的PHP程序来完成图片压缩。
LINUX系统的话,可以写一个常驻脚本,实时监控你的图片,所以发现图片文件超过指定大小的话,也执行图片大小和尺寸压缩的,当然也能通过调用PHP来执行。
以下是一段PHP的图片压缩代码:
//缩放图片
function mt($srcFile,$dstFile,$max_width=200,$max_height=150,$imgQuality=90){
$data=@getimagesize($srcFile);
if($data[0]<=$data[1] and $data[1]>=$max_height){
$height=$max_height;
$width=intval($height*$data[0]/$data[1]);
}
if($data[0]>=$data[1] and $data[0]>=$max_width){
$width=$max_width;
$height=intval($width*$data[1]/$data[0]);
}
if($height>$max_height){
$height=$max_height;
$width=intval($height*$data[0]/$data[1]);
}
if($data[0]<$max_width and $data[1]<$max_height){
$width=$data[0];
$height=$data[1];
}
switch($data[2]){
case 1:
$im=@imagecreatefromgif($srcFile);
break;
case 2:
$im=@imagecreatefromjpeg($srcFile);
break;
case 3:
$im=@imagecreatefrompng($srcFile);
break;
}
$srcW=@imagesx($im);
$srcH=@imagesy($im);
$ni=@imagecreatetruecolor($width,$height);
@imageresampled($ni,$im,0,0,0,0,$width,$height,$srcW,$srcH);
switch($data[2]){
case 'gif':@imagepng($ni,$dstFile, $imgQuality); break;
case 'jpeg':@imagejpeg($ni,$dstFile, $imgQuality); break;
case 'png':@imagepng($ni,$dstFile, $imgQuality); break;
default:@imagejpeg($ni,$dstFile, $imgQuality); break;
}
}
‘贰’ 如何在Windows中安装ImageMagick服务
一直以来都是使用GD在处理缩图,听说ImageMagick比较好用,所以来安装试试
在谷歌大神里找到的教学大多是安装于Linux上,安装于Windows也是有,但安装时遇到了一些问题
只好自己乱搞乱试了,如果你也有安装上的问题,不妨参考看看
1. 先查看phpinfo确认PHP Extension Build里的值
2. 前往 http://www.peewit.fr/imagick/ 下载 php_imagick.dll,依照PHP的版本及步骤1上看到的TS(Thread Safe),或NTS(Non Thread Safe),把下载后的档案放入 xampp\php\ext 中
3. 打开php.ini加上extension=php_imagick.dll
4. 前往 http://windows.php.net/downloads/pecl/deps/ 下载 ImageMagick ,依照步骤1上看到的VC9或VC11下载相对应的档案,解压缩后把资料夹bin里面全部的.dll档,放到 C:\Windows\system 里
‘叁’ php手机端图片裁剪怎么做
340改成 100%或是 你想适应的屏幕的比例
‘肆’ pdf文件太大imagick无法读取怎么办
PDF文件过大导致imagick无法读取可通过压缩PDF文件来解决,市面上压缩PDF的在线服务有不少,但是还是推荐本地软件压缩,更加私密和安全。
2、选择清晰度
清晰度可以设置0-100的数值,数值越小,压缩后的PDF文件体积越小,但清晰度越低;数值越大,压缩后的PDF文件体积越大,但清晰度越高。您可以根据实际需求来权衡,一般情况下建议使用默认的清晰度50,能很好的在清晰度和文件体积中达到均衡。
3、选择导出目录
如无特殊需求,一般保持默认的”源文件目录即可“,您也可以选择自定义目录,将文件保存到指定的文件夹中。
完成以上步骤后,就可以点击软件界面上蓝色的”开始转换“按钮,完成后会弹出提醒,点击打开文件即可查看转换结果,如果对压缩结果不满意,可通过调整清晰度来解决。
‘伍’ PHP等比例压缩图片的实例代码
具体代码如下所示:
/**
*
desription
压缩图片
*
@param
sting
$imgsrc
图片路径
*
@param
string
$imgdst
压缩后保存路径
*/
public
function
compressedImage($imgsrc,
$imgdst)
{
list($width,
$height,
$type)
=
getimagesize($imgsrc);
$new_width
=
$width;//压缩后的图片宽
$new_height
=
$height;//压缩后的图片高
if($width
>=
600){
$per
=
600
/
$width;//计算比例
$new_width
=
$width
*
$per;
$new_height
=
$height
*
$per;
}
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);
imageresampled($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);
imageresampled($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);
imageresampled($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;
}
}
总结
以上所述是小编给大家介绍的PHP等比例压缩图片的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:php中10个不同等级压缩优化图片操作示例PHP
实现等比压缩图片尺寸和大小实例代码php
gd等比例缩放压缩图片函数基于PHP实现等比压缩图片大小php上传图片并压缩的实现方法PHP实现图片上传并压缩PHP实现图片压缩的两则实例php使用imagick模块实现图片缩放、裁剪、压缩示例
‘陆’ 给为大侠好,小弟刚接触php,现在遇到一个问题:我现在要实现把目录文件下的pdf文件批量转换成png图片,
你要把错误代码贴出来啊亲,我看了一下,你是不是没有装imagick这个php扩展啊
‘柒’ [php],ext\php_imagick.dll' - 找不到指定的模块。求大神解决!
好不容易有个爱学习的小朋友,怎么可以打击自信心呢!
我也是搞得,且看以下我的总结:
1、在php.ini中开启扩展(php.ini的实际路径要注意)
extension=php_imagick.dll
2、按phpinfo中的信息下载相应扩展包
如:php_imagick-3.4.4-7.1-ts-vc14-x86
应该是7.1(VC14),ts线程安全,x86平台
3、重点!重点!把压缩包根目录中的所有dll文件都解压到ext目录中。
4、重点!重点!设定系统环境变量Path,把php的ext目录路径添加到Path中。
然后,用php --ri imagick命令测试一下看看。
希望能帮到你啊!(欢迎关注公众号“网管小贾”)
‘捌’ phpstudy安装imagick扩展库怎么装
phpstudy安装imagick扩展库的过程:
1、到imagemagick官网下载imagemagickwindows安装包:
10、出现224就证明安装成功。