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

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

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 。

目录
相关文章
|
5月前
|
关系型数据库 MySQL
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
web简易开发(二){html5+php实现文件上传及通过关键字搜索已上传图片)}
|
3月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
75 1
|
4月前
|
PHP
php使用curl新增微信临时素材(上传图片)
php使用curl新增微信临时素材(上传图片)
205 4
|
4月前
|
PHP
php 生成二维码图片
php 生成二维码图片
23 0
|
5月前
|
数据采集 机器学习/深度学习 存储
图片大搜罗:PHP下载器带你畅游Twitter图像海洋
构建Twitter图像下载器,使用PHP模拟请求抓取图像,通过代理IP规避限制。示例代码展示如何设置代理、用户代理和Cookie,解析HTML提取图像链接并下载。结合机器学习与元数据分析,可洞察用户行为和社会趋势。代理服务器信息及Twitter URL需自行替换。
图片大搜罗:PHP下载器带你畅游Twitter图像海洋
|
4月前
|
Web App开发 Linux PHP
PHP 实现抖音视频去水印播放
该内容主要介绍了如何获取无水印的抖音视频播放地址。原理是通过替换播放地址中的参数来去除水印,首先提供了一个带水印和无水印的播放地址示例。接着,展示了一段PHP代码,该代码通过解析分享链接,获取视频ID,然后利用这些信息通过cURL发送请求,最终得到无水印的播放地址。需要注意的是,由于抖音对PC端的限制,可能需要模拟手机请求来实现。
106 0
|
5月前
|
PHP 数据库
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务-2
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务
|
5月前
|
存储 PHP Apache
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务-1
DIY私人图床:使用CFimagehost源码自建无需数据库支持的PHP图片托管服务
|
15天前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
26天前
|
NoSQL 关系型数据库 MySQL
不是 PHP 不行了,而是 MySQL 数据库扛不住啊
【9月更文挑战第8天】这段内容讨论了MySQL在某些场景下面临的挑战及其原因,并指出这些问题不能完全归咎于MySQL本身。高并发读写压力、数据量增长以及复杂查询和事务处理都可能导致性能瓶颈。然而,应用程序设计不合理、系统架构不佳以及其他数据库选择和优化策略不足也是重要因素。综合考虑这些方面才能有效解决性能问题,而MySQL通过不断改进和优化,仍然是许多应用场景中的可靠选择。