PHP图像处理绘图、水印、验证码、图像压缩技术实例总结(3)
文章主要介绍了PHP图像处理技术,结合实例形式总结分析了php绘图、水印、验证码、图像压缩等相关函数、功能与图形绘制实现技巧,需要的朋友可以参考下:1、绘图 场景:...
4、图像压缩
对图像进行压
缩处理非常简单,因为就一个函数
参数1:目标图像资源(画布)
参数2:等待压缩图像资源
参数3:目标点的x坐标
参数4:目标点的y坐标
参数5:原图的x坐标
参数6:原图的y坐标
参数7:目的地宽度(画布宽)
参数8:目的地高度(画布高)
参数9:原图宽度
参数10:原图高度
imagecopyresampled($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)
封装的图像压缩类
<?php
/*
* 图像压缩处理类
*/
class
Thumb
{
private
$_filename
;
//等待压缩的图像
private
$_thumb_path
=
'thumb/'
;
//压缩图像的保存目录
public
function
__set(
$p
,
$v
)
{
if
(property_exists(
$this
,
$p
)){
$this
->
$p
=
$v
;
}
}
//构造方法初始化需要压缩的图像
public
function
__construct(
$file
)
{
if
(!
file_exists
(
$file
)){
echo
'文件有误,不能压缩'
;
return
;
}
$this
-> _filename =
$file
;
}
//图像压缩处理
function
makeThumb(
$area_w
,
$area_h
)
{
$src_image
= imagecreatefrompng(
$this
->_filename);
$res
=
getimagesize
(
$this
->_filename);
echo
'<pre>'
;
var_dump(
$res
);
die
;
$dst_x
= 0;
$dst_y
= 0;
$src_x
= 0;
$src_y
= 0;
//原图的宽度、高度
$src_w
= imagesx(
$src_image
);
//获得图像资源的宽度
$src_h
= imagesy(
$src_image
);
//获得图像资源的高度
if
(
$src_w
/
$area_w
<
$src_h
/
$area_h
){
$scale
=
$src_h
/
$area_h
;
}
if
(
$src_w
/
$area_w
>=
$src_h
/
$area_h
){
$scale
=
$src_w
/
$area_w
;
}
$dst_w
= (int)(
$src_w
/
$scale
);
$dst_h
= (int)(
$src_h
/
$scale
);
$dst_image
= imagecreatetruecolor(
$dst_w
,
$dst_h
);
$color
= imagecolorallocate(
$dst_image
,255,255,255);
//将白色设置为透明色
imagecolortransparent(
$dst_image
,
$color
);
imagefill(
$dst_image
,0,0,
$color
);
imagecopyresampled(
$dst_image
,
$src_image
,
$dst_x
,
$dst_y
,
$src_x
,
$src_y
,
$dst_w
,
$dst_h
,
$src_w
,
$src_h
);
//可以在浏览器直接显示
//header("Content-Type:image/png");
//imagepng($dst_image);
//分目录保存压缩的图像
$sub_path
=
date
(
'Ymd'
).
'/'
;
//规范:上传的图像保存到upload目录,压缩的图像保存到thumb目录
if
(!
is_dir
(
$this
-> _thumb_path .
$sub_path
)){
mkdir
(
$this
-> _thumb_path .
$sub_path
,0777,true);
}
$filename
=
$this
-> _thumb_path .
$sub_path
.
'thumb_'
.
$this
->_filename;
//也可以另存为一个新的图像
imagepng(
$dst_image
,
$filename
);
return
$filename
;
}
}
$thumb
=
new
Thumb(
'upload.jpg'
);
$thumb
-> _thumb_path =
'static/thumb/'
;
$file
=
$thumb
-> makeThumb(100,50);
// var_dump($file);
以上就是PHP图像处理绘图、水印、验证码、图像压缩技术实例总结介绍,希望本文所述对大家PHP程序设计有所帮助。
-
PHP实现高清晰度无损图片压缩功能的代码
经常会用到把上传的大图片压缩,特别是体积,在微信等APP应用上,也默认都是有压缩的,那么,怎么样对图片大幅度压缩却仍能保持较高的清晰度呢?...
-
用PHP处理png图片白色背景色改为透明色的实例代码
文章主要介绍了php 处理png图片白色背景色改为透明色的实例代码,文中通过实例代码给大家介绍了用PHP的GD库把图片的背景替换成透明背景,需要的朋友参考下...
-
关于PHP往mysql数据库中批量插入数据实例教程
文章主要给大家介绍了关于php往mysql中批量插入数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧...
-
Php两点地理坐标距离的计算方法和具体代码
文章主要为大家详细介绍了php两点地理坐标距离的计算方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下php计算两点地理坐标距离的具体代码,具体内容如下功能:根据圆周率和...
-
PHP获取HTTP body内容的方法
今天小编就为大家分享一篇PHP获取HTTP body内容的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧有时候我们获取数据时需要根据Header中的格式来解析,比...
-
PHP面向对象程序设计中获取对象属性的3种方法实例分析
文章主要介绍了PHP获取对象属性的三种方法,结合实例形式分析了php面向对象程序设计中获取对象属性的常见操作技巧,需要的朋友可以参考下。PHP获取对象属性的三种方法,具体如下...
-
php5.5新增的yield关键字功能与相关使用技巧
文章主要介绍了PHP yield关键字功能与用法,结合实例形式分析了php5.5新增的yield关键字功能与相关使用技巧,需要的朋友可以参考下实例讲述PHP yield关键字功能与用法具体如下:y...
-
Windows7下IIS+php配置教程详细介绍
文章主要为大家详细介绍了Windows7下IIS+php配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...
-
PHP序列化的四种实现方法与横向对比教程
在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。本文讲述PHP序列化的四种方案,感兴趣的可以了解一下一、PHP 序列化变量的 4 种方法序列化是将变量转...
-
PHP基于Redis消息队列实现的消息推送的方法
文章主要介绍了php基于Redis消息队列实现的消息推送的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧基本知识点重点用到了以下命令实现我们...