php-上传图片加水印(文字水印图片水印)

news2025/7/9 22:21:12

img.php

<?php
$img = '1.jpg';
//获取图片信息
$info = getimagesize($img);
//获取图片类型
$type = image_type_to_extension($info['2'],false);
//在内容中创建一个和图片一模一样的图片
$ext = "imagecreatefrom{$type}";
//图片复制到内存中
$image = $ext($img);
$con = '笑鸽';
$color = imagecolorallocatealpha($image,100,25,50,0);
imagettftext($image,50,0,20,600,$color,'./GB2312.ttf',$con);
header("content-type:" . $info['mime']);
$func = "image{$type}";
$func($image);

在这里插入图片描述

imagecolorallocatealpha函数用来设置图像透明度。
imagettftext函数表示使用想要的某类型字体,将指定的文字写入图像。

效果图:
在这里插入图片描述

字体:gb2312.zip


上传图片添加文字水印(图片上传之前添加水印)

public function waterMap($target){
   //$target为图片地址
   //添加水印
   $im = imagecreatefromjpeg($target); //需要先开启gb库,才会有作用;关闭状态下程序进行到这里会结束,不会抛出错误也不会有任何返回值;
   if($im) {
      $textColor  = imagecolorallocate($im, 111, 24, 110);//设定字体颜色
      $font = ROOT_PATH.'includes/font/GB2312.ttf';
      $text='ASianWish亚美汇国际';
      imagettftext($im,36,-45,10,100,$textColor,$font,$text);//用 TrueType 字体向图像写入文本,可以输出中文
      imagejpeg($im,$target);//生成jpg各式图片
      imagedestroy($im);//释放与 image 关联的内存
   }else{
      echo '图片错误';
   }
}

imagettftext ( $image , $size , $angle , $x , $y , $color , $fontfile , $text );

  1. image:由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
  2. size:字体的尺寸。根据 GD 的版本,为像素尺寸(GD1)或点(磅)尺寸(GD2)。
  3. angle:角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。
  4. x:由 x,y 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 imagestring() 不同,其 x,y 定义了第一个字符的左上角。例如 “top left” 为 0, 0。
  5. y:Y 坐标。它设定了字体基线的位置,不是字符的最底端。
  6. color:颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。
  7. fontfile:是想要使用的 TrueType 字体的路径。
  8. text:UTF-8 编码的文本字符串。

上传图片添加图片水印

public function imgWaterMap($source)
{
   $dst_path = $source;//目标图片
   $src_path = ROOT_PATH."images/watermark.png";//水印图片

   //创建图片的实例
   $dst = imagecreatefromstring(file_get_contents($dst_path));
   $src = imagecreatefromstring(file_get_contents($src_path));

   //获取图片的宽高
   list($dst_w, $dst_h) = getimagesize($dst_path);
   //获取水印图片的宽高
   list($src_w, $src_h) = getimagesize($src_path);

   //将水印图片复制到目标图片中间位置上,最后个参数是设置透明度
   imagecopymerge($dst, $src, ($dst_w/2-$src_w/2), ($dst_h/2-$src_h/2), 0, 0, $src_w, $src_h, 30);
   //如果水印图片本身带透明色,则使用imagecopy方法
   //imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);

   //输出图片
   list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
   switch ($dst_type) {
      case 1://GIF
         header('Content-Type: image/gif');
         //输出$dst到$target位置
         imagegif($dst,$target);
         break;
      case 2://JPG
         header('Content-Type: image/jpeg');
         imagejpeg($dst,$target);
         break;
      case 3://PNG
         header('Content-Type: image/png');
         imagepng($dst,$target);
         break;
      default:
         break;
   }

    //释放内存
   imagedestroy($dst);
   imagedestroy($src);

}

imagecopymerge() 函数用于拷贝并合并图像的一部分,成功返回 TRUE ,否则返回 FALSE 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/6933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot前后端分离的网吧管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SpringBoot 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目…

PICO《轻世界》体验:随心畅玩,洒脱创作,潜力无限

不少玩家应该还记得&#xff0c;PICO 4发布会上曾宣布将在VR运动健身、VR视频、VR娱乐、VR创造四大方向展开内容布局。而目前&#xff0c;前三个完成了基本部署&#xff0c;在创造方向上则依托于刚刚上线的《轻世界》这款应用。《轻世界》是一款3D内容UGC创作产品&#xff0c;目…

php宝塔部署实战thinkphp考试平台管理系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 有个朋友发消息跟我说&#xff0c;在网上下载了一套thinkphp考试管理系统的源码&#xff0c;在搭建的时候遇到问题一直部署不起来&#xff0c;让我帮他看看&#xff0c;我看了下代码&#xff0c;里面有些部分代码…

2022年11月华南师范大学自考本科网络工程-本科实践题目

《互联网及其应用&#xff08;03142&#xff09;&#xff08;实践&#xff09;》课程试卷 答卷提交说明&#xff1a;编程代码与输出结果截图&#xff0c;放到一个文件中&#xff0c;文件以“序号 姓名 课程名 ”命名&#xff0c;本试卷有三门课程&#xff0c;请根据不同的课程…

k8s训练营

一、linux命名空间和docker 1.linux的7大ns--------------ipc,net,pid,mnt.uts.user 查看linux的ns lsns查看不同类型的ns [rootmaster ~]# lsns -t netNS TYPE NPROCS PID USER COMMAND 4026531956 net 116 1 root /usr/lib/systemd/systemd --system --deserialize …

公司代码全局参数设置及其意义

在SAP中配置公司时&#xff0c;会配置公司的全局参数&#xff0c;但这些参数具体的意思是什么估计很多同学都搞不懂&#xff0c;我也找了下资料&#xff0c;贴出来供大家参考。 设置参数路径&#xff1a;IMG→财务会计→财务会计全局设置→公司代码的全球参数→输入全局参数 账…

C++Qt开发——Linguist语言家

Qt Linguist 简介 Qt提供了一款优秀的支持Qt C和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。 发布者&#xff1a;承担了全面发布应用程序的责任。通常&#xff0c;他们协调开发者和翻译者的工作&#xff0c;可以使用lupdate工具…

激光雷达的厮杀18年:西方“诸神黄昏”,东方“新王隐现”

鼻祖、发明家、神童、梦想家、特种兵和中国双星&#xff0c;激光雷达“诸神混战”&#xff0c;行业疯狂洗牌。 风云激荡中&#xff0c;每个人都在亲身见证历史。 2004年&#xff0c;美国发起DARPA挑战赛&#xff0c;无人车上路&#xff0c;汽车上首次出现激光雷达。 2010年之…

原型工具墨刀的使用

刚开始接触原型工具是大学时候了&#xff0c;大学参加大创的时候第一次接触并使用原型工具做了小程序项目原型。那时候是下载的客户端。 最近&#xff0c;又开始思考在用户沟通过程中为方便沟通&#xff0c;可以先自己用原型工具简单的设计一下先。 首先&#xff1a;网页版好用…

JavaScript流程控制-循环(循环(for 循环,双重 for 循环,while 循环,do while 循环,continue break))

目录 JavaScript流程控制-循环 循环 for 循环 执行过程&#xff1a; 断点调试&#xff1a; 案例一&#xff1a;求1-100之间所有整数的累加和 案例二&#xff1a;求1-100之间所有数的平均值 案例三&#xff1a;求1-100之间所有偶数和奇数的和 案例四&#xff1a;求1-10…

哈希(Hash) - 开散列/闭散列

文章目录&#xff1a;认识哈希哈希函数处理冲突的方法闭散列&#xff08;开放定址法&#xff09;开散列&#xff08;链地址法&#xff09;哈希表闭散列实现闭散列基本框架哈希表闭散列插入&#xff08;insert&#xff09;哈希表闭散列删除&#xff08;erase&#xff09;哈希表闭…

深度学习模型部署全流程-模型部署

往期回顾&#xff1a;模型训练 文章目录前言模型部署全流程1.推理框架2.onnx模型3.模型转换4.代码实现5.完整代码小结前言 在上一篇文章中详细讲述了模型训练的流程&#xff0c;这篇文章主要介绍模型部署的流程。模型部署通常指通过C/C语言能够把python框架训练好的模型跑起来…

【ROS】机械人开发一--树莓派安装ubuntu18.04

前言&#xff1a;安装了一天的树莓派系统&#xff0c;遇到了很多坑&#xff0c;这里将教程详细分享一下&#xff0c;方便大家快速的安装系统。 目录一、操作环境硬件软件二、资源下载链接三、具体步骤烧入修改镜像文件问题修改重启时间PC端使用xshell远程连接修改软件源安装ubu…

嵌入式软件调试(Debug)方法

嵌入式软件调试&#xff08;Debug&#xff09;方法1 问题定位和分析方法1.1 二分定位法1.2 数据流方法1.3 隔离法1.4 汇编法1.5 ABA法1.6 版本回溯确认法1.7 调试IO法2 调试注意事项3 典型问题类型1 问题定位和分析方法 1.1 二分定位法 方法阐述&#xff1a; 在任务中或者可能…

Redis介绍与下载

初识Redis Redis介绍 由Salvatore Sanfilippo写的key-value存储系统&#xff0c;是跨平台的非关系型数据库 Redis通常被称之为数据结构服务器&#xff0c;因为值(value)可以是字符串、哈希、列表、集合和有序集合等类型 Redis是完全开源的遵守BSD协议&#xff0c;是一个高性能的…

看着别人月入过万,30岁想转入做软件测试,有什么难度?

我见过很多30岁转行软件测试成功的&#xff0c;也见过软件测试转行失败的。 说实话&#xff0c;30岁转行需要付出比一般人更加多的努力。 并且每一步的路都不能走偏。 30岁了&#xff0c;转行肯定不像才毕业的小年轻那么容易&#xff0c;毕竟你转行要跟社会上已经从事过几年的…

Android移动应用开发之使用room实现数据库的增删改查

文章目录前言核心代码前言 我们直接开门见山&#xff0c;展示一下效果&#xff1a; 数据库的插入和查询&#xff1a; 数据库的修改和查询&#xff1a; 可以看到id为23的数据发生了修改。 删除一条数据&#xff1a; 可以看到id为23的数据被删除了 删除全部数据&#xff1…

Sedex验厂有证书吗?

【Sedex验厂有证书吗&#xff1f;】 SEDEX 是一个全球性的会员制组织&#xff0c;旨在帮助企业在负责任商业中去繁存简&#xff0c;携手共进。买家、供应商和审计员可以在平台上快速轻松地储存、共享和报告信息。 SMETA&#xff08;Sedex Members Ethical Trade Audit&#xff…

日本知名汽车零部件公司巡礼系列之株式会社111

株式会社111 业务内容&#xff1a; . 在所有领域的零件缴纳各种都有相应的实际业绩 &#xff08;例&#xff09;OA器械、光学器械、汽车其他运送器械、医疗器械、各种制造装置零件、机器人相关零件、能源相关零件、航空相关零件等 广泛应对各种材料产品 铁、铝、不锈钢、合…

【FLASH存储器系列八】ONFI数据接口详述之一

目录 1.1 数据接口类型概览 1.2 信号功能分配 1.3 接口模式切换 1.1 数据接口类型概览 ONFI目前支持5中不同的数据接口类型&#xff1a;SDR&#xff0c;NV-DDR&#xff0c;NV-DDR2、NV-DDR3和NV-LPDDR4。SDR是传统的NAND接口&#xff0c;使用RE_n锁存读数据&#xff0c;WE_n锁…