位置: 编程技术 - 正文

PHP缩略图生成和图片水印制作(php缩进)

编辑:rootadmin

推荐整理分享PHP缩略图生成和图片水印制作(php缩进),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php缩放图片,php缩小图片,php图片扩展,php压缩图片大小,php缩放图片,php 生成缩略图,php图片压缩成指定大小,php缩小图片,内容如对您有帮助,希望把文章链接给更多的朋友!

1.开始

在网站上传图片过程,经常用到缩略图功能。这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图。

2.如何生成缩略图

生成缩略图,关键的是如何计算缩放比率。

这里,我根据图片等比缩放,宽高的几种常见变化,得出一个算缩放比率算法是,使用新图(即缩略图)的宽高,分别除以原图的宽高,看哪个值大,就取它作为缩放比率:

缩放比率 = Max( { 新图高度 / 原图高度 , 新图宽度 / 原图宽度 } )

也就是:

If ( (新图高度 / 原图高度) > (新图宽度 / 原图宽度 ) ) {

缩放比率 = 新图高度 / 原图高度;

}ELSE {

缩放比率 = 新图宽度 / 原图宽度;

}

这里列出场景的图片缩放场景,及处理方法:

e.g

场景1,原图比新图大的情况, 缩放比率 = 新图宽度 / 原图宽度 :

场景2,原图比新图大的情况,b. 缩放比率 = 新图高度 / 原图高度 :

场景3,原图比新图大的情况,而且新图宽高相等,即新图形状是正方形,那么上面的缩放算法也是适用的。

场景4,如果 “新图宽度 >= 原图宽度” ,同时 “新图高度 >= 原图高度”,那么不缩放图片,也不放大图片,保持原图。

PHP缩略图生成和图片水印制作(php缩进)

场景5,如果 “新图宽度 < 原图宽度”,同时 “新图高度 >= 原图高度” ,那么先设置 “新图高度= 原图高度”,再剪切。

场景6,如果 “新图高度 < 原图高度”,同时 “新图宽度 >= 原图宽度” ,那么先设置 “新图宽度= 原图宽度”,再剪切。

3.如何添加水印图片 添加水印很容易,我这里没考虑那么复杂,主要是控制水印位置在图片的右下角,和控制水印在图片中的大小。如,当目标图片与水印图大小接近,那么需要先等比缩放水印图片,再添加水印图片。

左边两幅图,上面是原图,下面是水印图,右边的缩放后加水印的新图。

4.类图

5.PHP代码

5.1. 构造函数 __construct()

在Image类中,除了构造函数__construct()是public,其它函数都为private.也就是在函数__construct()中,直接完成了生成缩略图和添加水印图的功能。如果,只生成缩略图而不需要添加水印,那么直接在__construct()的参数$markPath,设置为null即可。

其中,“$this->quality = $quality &#; $quality : ;” 控制输出为JPG图片时,控制图片质量(0-),默认值为;

Note: 先生成缩略图,再在新图上添加水印 图片。

5.2. 生成缩略图函数_thumb()

生成缩略图函数_thumb() ,是按照前面的分析来进行编码。

5.3. 添加水印图片函数 _addWaterMark()

在添加水印图片中,用到一个_thumb1()函数来缩放水印图片:

5.4. 完整代码:

6.调用

调用非常简单,在引入类后,直接new 并输入对应参数即可:

e.g.

new Image($_path, MARK, , , );

7.小结这个Image 类能够生成缩略图,不出现黑边,添加水印图,能根据图片的大小缩放水印图。当然有个缺点,就是不能缩放GIF的动画,因为涉及到帧的处理,比较麻烦。

标签: php缩进

本文链接地址:https://www.jiuchutong.com/biancheng/296224.html 转载请保留说明!

上一篇:PHP中仿制 ecshop验证码实例(php demo)

下一篇:PHP验证码类ValidateCode解析(php验证码扭曲效果怎么做)

  • 外贸企业出口货物
  • 计提税金账务处理
  • 营业税是什么意思 视频
  • 营业执照类型有限责任公司
  • 资产总额和权益总额必然相等吗
  • 一般纳税人收入会计分录
  • 回退税款所属期具体条件是
  • 本期免税额怎么填写
  • 软件企业收到先征后返的增值税税款是否要缴纳企业所得税
  • 增值税是否计入固定资产成本
  • 销售金额计算抵增值税吗
  • 投资资产包括哪些会计科目
  • 开立基本账户所需资料
  • 延期缴纳税款会退回吗
  • 三证合一 更新
  • 冲销暂估入库
  • 公司注销后应收款能打到法人账户吗
  • 为什么要抵消损益
  • 固定资产销售税务处理
  • 销售合同印花税计税依据及税率
  • 教育附加费的计算方法
  • 合同开票金额一定等于合同额吗
  • 应交增值税进项税额借贷方向
  • 未分配利润为负的原因
  • 个人所得税人员添加后如何操作
  • 差额发票如何缴纳增值税
  • 公司没有发票的做内账,那么支付款从哪里来
  • 预付工程款如何计提坏账
  • 关于笔记本电脑的文案
  • PHP:curl_pause()的用法_cURL函数
  • 桔梗的功效与作用吃法
  • 代开发票所需的资料?
  • 找潜水员
  • php处理xml
  • Linux(CentOS)下PHP扩展PDO编译安装的方法
  • 税务局罚款计入哪个会计科目
  • 预收账款增值税纳税义务
  • 残疾人保障金工资总额包括年终奖吗
  • vue前端开发常见问题
  • 写一个php访问数据库并读取数据的脚本
  • sbc奇思妙想
  • 保险代理人展业成本如何计算
  • access微软
  • 增值税专用发票电子版
  • 公司滞纳金员工承担怎么做账
  • 预缴税金用于抵减税费
  • 交易性金融资产公允价值变动怎么算
  • ETC通行费发票抵扣2021新规定
  • 商品损耗进项税额怎么算
  • 建筑工程承包合同保证保险中,承保工程所有人
  • 收到党建工作经费的通知
  • 补缴以前年度养老保险分录
  • 存货跌价准备的计算
  • 什么是非关联方账户
  • 发票作废才能验旧吗
  • mysql的crud
  • mysql 5.7.18 winx64密码修改
  • centos 安装选择
  • win2003怎么安装
  • centos7 中文支持
  • slserve.exe - slserve是什么进程
  • ctfmon.exe成功怎么解决
  • win8 开机
  • xp系统的设置在哪里打开
  • 快速解决便秘的小妙招
  • win7点开始一直跳闪
  • unitysharder
  • nodejs搭建web服务器
  • windows批处理官方教程
  • 很好的无光照模式叫什么
  • 加密批处理代码
  • 精灵动画片大全90年代
  • javascript的
  • nodejs调用打印机
  • windows and android
  • 查看项目层级结构怎么查
  • 安卓app活动
  • js拖拽div
  • 广西地方税务网站官网
  • 契税退税进度怎么查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设