php GD库做水印功能,合并图片

2023-11-04

1.创建一个适应大小的底层图片
2.读取需要拼接的图片
$dst_data=file_get_contents($dst_src);
$dst_img = imagecreatefromstring($dst_data);
3.把读取的图放到指定的位置,这里需要慢慢调试,使用下面的函数
imagecopymerge
4.出拼接后的图
header("Content-Type:image/jpeg");
imagejpeg($dst_img);


可能会用到的函数
imagecreatetruecolor //生成底图
file_get_contents //获取对应的图片
imagecreatefromstring //字符串转换成图片
imagecopyresampled //拷贝图片调整大小
imagecopymerge //合成图片


header("Content-type: image/jpeg");

//原始图像
$dst = "images/flower_1.jpg";

//得到原始图片信息
$dst_im = imagecreatefromjpeg($dst);
$dst_info = getimagesize($dst);

//水印图像
$src = "images/logo.gif";
$src_im = imagecreatefromgif($src);
$src_info = getimagesize($src);

//水印透明度
$alpha = 30;

//合并水印图片
imagecopymerge($dst_im,$src_im,$dst_info[0]-$src_info[0],$dst_info[1]-$src_info[1],0,0,$src_info[0],
$src_info[1],$alpha);

//输出合并后水印图片
imagejpeg($dst_im);
imagedestroy($dst_im);

imagedestroy($src_im);

下面是个简单的水印demo

<?php
function combine_image($image1,$image2,$c=0,$d=0)//$image1底层图片  $image2水印图片 $c合并X坐标 $d合并Y坐标
{
  $filename=time().".jpg";
  if(!$image1 || !$image2) return false;
  $aa=getimagesize($image1);
  $width=$aa["0"];
  $height=$aa["1"];
  $kind=$aa['mime'];
  $aa1=getimagesize($image2);
  $width1=$aa1["0"];
  $height1=$aa1["1"];
  $kind1=$aa1['mime'];


  //指定缩放出来的最大的宽度(也有可能是高度)
  $max=1000;

  //根据最大值为300,算出另一个边的长度,得到缩放后的图片宽度和高度
  if($width > $height){
    $width=$max;
    $height=$height*($max/$aa['0']);
  }else{
    $height=$max;
    $width=$width*($max/$aa['1']);
  }
  $im = imagecreatetruecolor($width,$height);
  if($kind=='image/jpeg'){
    $im1 = imagecreatefromjpeg($image1);
  }elseif($kind=='image/png'){
    $im1 = imagecreatefrompng($image1);
  }else{
    $im1 = imagecreatefromgif($image1);
  }
  if($kind1=='image/jpeg'){
    $im2 = imagecreatefromjpeg($image2);
  }elseif($kind1=='image/png'){
    $im2 = imagecreatefrompng($image2);
  }else{
    $im2 = imagecreatefromgif($image2);
  }
  imagecopyresampled($im, $im1, 0, 0, 0, 0,$width,$height,$aa['0'],$aa['1']);
  imagecopyresampled($im, $im2, $c, $d,0, 0,$width,$height,$aa1['0'],$aa1['1']);
  header('Content-Type: image/jpg');
  //imagejpeg($im,$filename);
  imagejpeg($im);
  imagedestroy($im);
  imagedestroy($im1);
  imagedestroy($im2);
  return $filename;
}
combine_image('1.jpg','2.png');


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php GD库做水印功能,合并图片 的相关文章

  • 保存多对多关系,同步/附加不存在?

    我有以下两个多对多关系的模型 use Illuminate Database Eloquent Model class Permission extends Model The database table used by the mode
  • 如何使用 PHP 对字符串进行 rot13 处理?

    我有一个很大的 php 代码 我想手动对其进行编码和解码 我的问题是 php 代码里面有很多单引号和双引号 因此我在使用时出现错误str rot13 功能如下 那么正确的语法是什么以及如何使用下面的函数进行编码 str rot13 That
  • 检查 $_POST 数据

    我正在对表单进行一些垃圾邮件检查 下面的代码在我的本地主机上正常工作 如果为 true 则重定向到 google com 但是 当它在生产服务器上时却不起作用 执行脚本的其余部分并且不重定向到 Google com if POST SERV
  • setcookie with expire=0 浏览器关闭后不会过期

    我使用setcookie来制作一个过期 0的cookie 从 PHP 文档来看 link http php net manual en function setcookie php cookie 过期的时间 这是一个 Unix 时间戳 所以
  • 用户可以更改 PHP 中 $_SESSION 的值吗?

    这是我的想法 我想知道是否可能 将信息存储在 PHP 的 SESSION 变量中有多安全 在 SESSION 变量中存储变量有两个潜在的 不安全 风险 另一个答案所描述的第一个称为 会话固定 这里的想法是 由于会话 ID 存储在 cooki
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 无法访问 localhost/xampp/index.php

    我刚刚安装了 Windows 7 的 XAMPP 控制面板似乎工作正常 我启动了 MySql 和 Apache 我遇到的问题是 当我在浏览器 Google Chrome 中输入 localhost 时 它会将我发送到 http localh
  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 在哪里可以学习网络编程从入门到精通? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我尝试做教程 但它是无组织且无结构的 我在哪里可以学习 PHP 从初学者到大师 我正在寻找类似的网站w
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • 在 foreach 中使用 QueryPath 的多个查找

    我正在使用 QueryPath 和 PHP 这发现 eventdate 没问题 但不会为 dtstart 返回任何内容 qp htmlqp url foreach qp gt find table schedule gt find tr a
  • Facebook API sdk 4.0 - 将照片发布到 Facebook

    我正在尝试创建一个应用程序 用户可以在其中浏览照片并将其从计算机提交到 Facebook 为此 他们首先必须将照片上传到服务器 然后使用 Facebook 请求将此图像发布到 Facebook 我正在使用多部分 表单数据 这就是我到目前为止
  • CodeIgniter:My_Lang 中的 get_instance

    我发现这个有用的国际化代码 http pastebin com SyKmPYTX http pastebin com SyKmPYTX 一切正常 除了我无法在此类中使用 CI 函数 我想从 DB 设置 languages 和 special
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • 字符串相似度的算法(比Levenshtein和similar_text更好)? php, Js

    在哪里可以找到比 levenshtein 和 phpimilar text 方法更准确地评估错误字符的拼写的算法 Example similar text jonas xxjon similar echo similar returns 6
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐

  • Jeesite4修改登录页面,首页

    大家进行熟悉框架的时候 一定要先吃透文档 因为文档很全 说实话 百度上Jeesite4的资源真的很少 剩下的就只剩文档了 本篇文章想跟大家分享的是如何修改默认的前段页面 我感觉与其说修改 还不说是替换 因为他跟SpringMVC的视图配置有
  • 多目标优化问题和遗传算法学习笔记

    多目标优化问题和遗传算法学习笔记 多目标优化问题和遗传算法学习笔记 本人最近研究多目标优化问题以及NSGA2算法 下面把学习笔记分享给大家 希望可以帮助到一些和我一样的初学者们 名词 Nondominated sorting 非支配排序 N
  • OpenMMLab AI实战营第二期(1)计算机视觉与OpenMMLab概述

    通过今天课程的学习 算是比较大的扩展了我的视野 近期主要学一些强化学习的知识 没有想到计算机视觉领域已经发展的这么迅猛 很多以前只是在脑海里想象的计算机视觉应用场景 原来OpenMMLab已经实现了 我比较对目标检测感兴趣 而且之后可能要用
  • nginx模块初始化

    nginx模块初始化 1 nginx模块介绍 在nginx编译之后 在源代码目录中会出现objs文件夹 里面有ngx auto config h ngx auto headers h以及ngx modules c文件等 其中 生成的ngx
  • linux安装redis

    一 下载 wget https download redis io releases redis 6 2 6 tar gz 二 解压 tar zvxf redis 6 2 6 tar gz 三 移动 mv root redis 6 2 6
  • FPGA 30 综合数字ADC /DAC 信号发送采集系统设计(综合项目设计)

    FPGA 30 综合数字ADC DAC 信号发送采集系统设计 综合项目设计 模块名称 综合数字ADC DAC 信号发送采集系统设计 主要功能 本实验设计了一个信号发送和采集系统的设计 在整个系统中 基于原先学习的key filter 按键滤
  • c语言数据结构之栈

    前言 栈是一种先进后出的结构 只能对栈顶进行操作 数据入栈 出栈都在栈顶处 换句话说 栈只能对栈顶端进行操作 禁止跳过栈顶插入或删除其它数据 栈可以简单分为数组栈和链表栈 数组栈设定了空间大小 而链表栈在内存允许的范围内无空间大小限制 通过
  • 域控服务器和文件服务器,windows2008 r2域控制器和文件服务器问题

    发表于 2017 5 17 17 55 来自 51CTO网页 引用 原帖由 xifalniang 于 2017 5 17 17 36 发表 可能是与文件共享相关的服务异常 具体先dcdiag检查下吧 看下出错时候的系统日志 目录服务器诊断
  • 七叔带你玩转pytest—fixture,妈妈再也不用担心学不会测试了

    前言 我们今天呢来看看pytest实现fixture有几种方式 分别该怎么进行呢 小编废话不多说了咱们直接开始吧 自动化测试框架中的 fixture 我们在编写测试用例 都会涉及到用例执行之前的环境准备工作 和用例执行之后的环境清理工作 代
  • zxing解码条形码C++

    include funset hpp include
  • ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your

    报错 ERROR 1064 42000 You have an error in your SQL syntax check the manual that corresponds to your MySQL server version
  • hosts ip 指向ip_【好玩的网络-第4期】DNS硬核科普,你是怎么上网的?DNS里都有啥?传说中的hosts文件又是啥?...

    好玩的网络 系列面向普通人的网络科普视频 我在我的哔哩哔哩账号 up主 旋律果子 更新 好玩的网络 视频版 在我的知乎 用户 曾彦 专栏更新 好玩的网络 文字版 最新消息以及预告在我的个人网站www yzeng1995 top发布 大家可以
  • 09.MyBatis整合PageHelper实现分页功能

    09 MyBatis整合PageHelper实现分页功能 MyBatis可以使用第三方的插件来对功能进行扩展 分页组手PageHelper是将分页的复杂操作进行封装 使用简单的方式即可获得分页的相关数据 开发步骤 导入通用的PageHelp
  • STM32的全系列MCU的ID号的地址及读取方法

    在STM32的全系列MCU中均有一个96位的唯一设备标识符 在ST的相关资料中 对其功能的描述有3各方面 用作序列号 例如 USB 字符串序列号或其它终端应用程序 在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时
  • 全桥DCDC输出电压和变比占空比的关系

    在做各种数千瓦到数十千瓦的变换器的过程中 辅助电源总是如影随形 但是我从来没有专门去做过它们 有时候遇到这方面的问题需要解决的时候 对其基本原理竟一时懵逼了 一下图为例 列出今天的疑问 输出电压和占空比 变压器变比的关系 经过一番思考和查阅
  • vue-styled-components

    1 安装 npm install vue styled components 2 在一个组件中引入
  • LabVIEW必知

    介绍 基础知识 数学函数 矩阵数学 数据采集 介绍 传感器和信号 硬件 采集数据 操作数据采集系统需要软件 而这正是LabVIEW发挥作用的地方 LabVIEW旨在与National Instruments数据采集系统一起使用 在收集数据之
  • 微服务(Microservice)那点事

    WHAT 什么是微服务 微服务简介 这次参加JavaOne2015最大的困难就是听Microservice相关的session 无论内容多么水 只要题目带microservice 必定报不上名 可见Microservice有多火 最喜欢其中
  • VUE3 学习笔记(七)动态样式 class 实现

    目录 一 绑定 HTML class 1 绑定对象 2 绑定数组 3 在组件上使用 二 绑定内联样式 1 绑定对象 2 绑定数组 3 自动前缀 4 样式多值 数据绑定的一个常见需求场景是操纵元素的 CSS class 列表和内联样式 因为
  • php GD库做水印功能,合并图片

    1 创建一个适应大小的底层图片 2 读取需要拼接的图片 dst data file get contents dst src dst img imagecreatefromstring dst data 3 把读取的图放到指定的位置 这里需