位置: 编程技术 - 正文

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验证码扭曲效果怎么做)

  • 在报税显示缺少发票信息
  • 商贸企业辅导期是什么
  • 工商税收是什么意思啊
  • 增值税认证勾选平台
  • 新个税计算公式怎么输入excel
  • 税款征收方式是指
  • 工程奖励金算收入吗
  • 增值税未缴款能清卡吗
  • 电子税务局怎么删除办税员
  • 分期收款方式确认销售收入
  • 民办非企业不注销的法律后果
  • 备用金没有发票抵消违法吗
  • 个人所得税哪里报税
  • 其他现代服务税目包括哪些内容
  • 过路费认证用去哪里认证
  • 房地产企业被收购报表处理
  • 应付职工薪酬如何具体到个人
  • 装饰行业可否用石灰代替
  • 错账更正分录
  • 公司因担保产生损失
  • 消防设施安装费包括哪些
  • 结转预交增值税会计处理
  • 有限合伙企业清算
  • 个人所得税税费种认定功能在哪里
  • 税务行业软件
  • 税收优先权的表述
  • 接受捐赠收入要计入企业所得税应纳税所得额吗
  • 确认并支付本年职工工资
  • 办公家具可以一次性抵扣吗?
  • 企业销售收入含不含税
  • 加工贸易的方式
  • Win10 Build 19043(21H1最新版)即将推送 更新内容汇总
  • 估计退货的会计分录
  • 双网卡冲突会发生什么现象
  • 工程公司项目经理年薪一般多少
  • 纳税人如何申请延期缴纳税款
  • 单位给个人开票需要什么资料才能开
  • 特殊收入应扣减可加计扣除的研发费用政策依据
  • 非正常损失运输费进项税额如何转出
  • 汇票本票支票的相同点和不同点
  • 艾灸的好处与功效女人
  • PHP:imagepsextendfont()的用法_GD库图像处理函数
  • 哪些项目容易漏缴个人所得税?
  • 可抵扣增值税有哪些
  • ai绘图素材
  • 债券转换是什么意思
  • php 写入excel
  • python抓取淘宝店铺商品
  • vue组件通信方法
  • 无形资产入股后如何处理
  • 用python绘制
  • 房产置换怎么做账务处理
  • 简易征收的进项税怎么处理
  • 在mysql中子查询是
  • mongodb主从同步速度
  • 增值税发票丢失可以重开吗
  • mysql基础操作命令
  • 餐饮管理公司如何收取管理费
  • 契税退税政策怎么操作
  • 会计凭证销毁年限
  • 开出咨询费发票应该注册什么企业?
  • 什么叫递延收益和其他收益
  • 充值优惠怎么写
  • 发给客户的红包是什么费用
  • 收到发票没付款,能打赢官司吗
  • 旅行社的代订机票产品能报销吗
  • 数据库查询排名
  • MySQL PXC构建一个新节点只需IST传输的方法(推荐)
  • mac系统照片在哪个文件夹
  • mac怎么多开
  • win8玩游戏
  • linux系统默认启动级别
  • python中元组和列表
  • css滚动条设置
  • nodejs增删改查
  • Python中字符串的索引
  • jquery formbuilder
  • 如何判断python列表长度
  • 宁夏退休职工网上认证
  • 别人用你的收款码能骗到钱吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设