* index.php

<?php
/*** Created by PhpStorm.* User: mingzhanghui* Date: 9/24/2019* Time: 12:47*/include "autoload.php";// 头像图片
$dstPath = dirname(__FILE__)."/image/avatar.jpg";
// 国旗图片
$srcPath = dirname(__FILE__)."/image/flag.png";/** @var $dataDst string image content */
$dataDst = file_get_contents($dstPath);
$dataSrc = file_get_contents($srcPath);
$dst = imagecreatefromstring($dataDst);
list($dstW, $dstH) = getimagesize($dstPath);list($srcW, $srcH) = getimagesize($srcPath);
// 宽度是小图的3倍
$thumbWidth = 3 * $srcW;
$thumbHeight = $thumbWidth * ($dstH/$dstW);
$data = \lib\Image::resize($dataDst, $thumbWidth, $thumbHeight, 0);
if (!$data) {echo "resize failed\n";exit(1);
}
$dst = imagecreatefromstring($data);
$info = getimagesize($dstPath);
// 'mime' => 'image/jpeg'
// 'mime' => 'image/png'$a = explode('/', $info['mime']);
$type = array_pop($a);
unset($a);$dstPath = "tmp.".$type;
call_user_func("image".$type, $dst, $dstPath);
// == 缩略图生成完了 ==$dstW = $thumbWidth;
$dstH = $thumbHeight;
list($dstW, $dstH) = getimagesize($dstPath);$src = imagecreatefromstring($dataSrc);imagecopymerge($dst, $src,$dstW - $srcW, $dstH - $srcH,0, 0, $srcW, $srcH, 100);/*
header("Content-Type: ".$info['mime']);
// imagepng();
call_user_func("image".$type, $dst);
*/call_user_func("image".$type, $dst, "out.".$type);imagedestroy($src);
imagedestroy($dst);

* autoload.php

<?php
/*** Created by PhpStorm.* User: mingzhanghui* Date: 9/24/2019* Time: 13:16*/$prefixList = ['lib'];$pwd = dirname(__FILE__);foreach ($prefixList as $prefix) {spl_autoload_register(function($class) use ($prefix, $pwd) {$base_dir = $pwd . DIRECTORY_SEPARATOR. str_replace('\\', '/', $prefix);// echo $base_dir.PHP_EOL;$len = strlen($prefix);if (strncmp($prefix, $class, $len) !== 0) {return;}$relative_class = substr($class, $len);$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';// echo $file.PHP_EOL;if (file_exists($file)) {require $file;}});
}

* ./lib/Image.php

<?php
/*** Created by PhpStorm.* User: mingzhanghui* Date: 9/24/2019* Time: 13:15*/namespace lib;class Image
{/*** @param $imagedata  string  图像数据* @param $width    int    缩放宽度* @param $height    int   缩放高度* @param int $per     缩放比例,为0不缩放,>0忽略参数2、3的宽高* @return bool|string*/public static function resize($imagedata, $width, $height, $per = 0) {// 1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM// 获取图像信息list($bigWidth, $bigHight, $bigType) = getimagesizefromstring($imagedata);// 缩放比例if ($per > 0) {$width  = $bigWidth * $per;$height = $bigHight * $per;}// 创建缩略图画板$block = imagecreatetruecolor($width, $height);// 启用混色模式imagealphablending($block, false);// 保存PNG alpha通道信息imagesavealpha($block, true);// 创建原图画板$bigImg = imagecreatefromstring($imagedata);// 缩放imagecopyresampled($block, $bigImg, 0, 0, 0, 0,$width, $height, $bigWidth, $bigHight);// 生成临时文件名$tmpFilename = tempnam(sys_get_temp_dir(), 'image_');// 保存switch ($bigType) {case 1: imagegif($block, $tmpFilename);break;case 2: imagejpeg($block, $tmpFilename);break;case 3: imagepng($block, $tmpFilename);break;}// 销毁imagedestroy($block);$image = file_get_contents($tmpFilename);unlink($tmpFilename);return $image;}
}

把国旗图片覆盖到目的图片右下角

PHP GD库 生成图片水印相关推荐

  1. php gd库 图片水印,php使用GD库实现文字图片水印及缩略图教程

    我们要使用gd库就必须先打开gd库,具体如下 Windows下开启PHP的GD库支持 找到php.ini,打开内容,找到: ;extension=php_gd2.dll 把最前面的分号";& ...

  2. GD库 图片水印+文字水印+缩率图+圆形图

    先将图片放到本地再做水印处理,项目使用tp框架 class CurrPicture { /**图片下载到本地*/ public function localImg($source) {#1.初始化一个 ...

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

    1.创建一个适应大小的底层图片 2.读取需要拼接的图片 $dst_data=file_get_contents($dst_src); $dst_img = imagecreatefromstring( ...

  4. php生成图片表格自动换行_PHP GD库生成图片自动换行函数,自动分页函数

    /* 文字自动换行 * @param $card 画板 * @param $pos 数组,top距离画板顶端的距离,fontsize文字的大小,width宽度,left距离左边的距离,hang_siz ...

  5. php gd图片验证,php笔记之GD库图片创建/简单验证码

    燕十八 公益PHP培训 课堂地址:YY频道88354001 学习社区:www.zixue.it php画图:比如说验证码,缩略图,加水印都要用到GD库,所以要开启gd2库,才能用 首先找到php.in ...

  6. ubuntu php5 gd库,Ubuntu下php使用GD库笔记

    首先是查看GD库有没有被正确的安装和加载.通过gd_info()可以看,或者phpinfo.在phpinfo中可以看到gd一栏,然后版本如果是 bundled (2.0.34 compatible) ...

  7. PHP面向对象——GD库实现图片水印和缩略图

    今天的实现目标就是使用GD库完成对图片加水印和图 片缩略图两个功能 动身前逻辑准备 属性:路径功能:构造方法生成水印的方法获取图片信息获取位置信息(123 456 789)创建图片资源合并图片资源重新 ...

  8. 发帖添加作者水印插件无法发帖问题-缺少GD库支持,php如何安装gd库-一颗优雅草科技伊凡

    发帖添加作者水印插件无法发帖问题-缺少GD库支持,缺少发帖会报错 php如何安装gd库: 宝塔 也可以点击进入终端 执行 Linux系统直接安装: yum install php-gd* #适用于32 ...

  9. 使用GD库为图片打水印

    一.文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件. 代码如下: $dst_path = 'dst.jpg'; //创建图片的实例 $dst = ...

最新文章

  1. 【编码】-小Ho的防护盾-2016.08.14
  2. RecycleView 缓存原理解析
  3. 机器学习-常见的损失函数比较
  4. IBM推出云深度学习图形芯片Tesla P100 GPU加速器
  5. AT2645 [ARC076D] Exhausted?(Hall定理推论/线段树+扫描线)
  6. Linux下编译安装Apache httpd 2.4
  7. python正则表达式中的转义字符_python 正则表达式之转义字符
  8. python获取小王的ip地址_用Python获取本机的IP地址
  9. hbase集群 数据写入_HBase架构与原理详解
  10. 人工智能是 6G 诞生的关键!| 极客头条
  11. 【渝粤教育】国家开放大学2018年春季 0706-21T行政管理学导论 参考试题
  12. 10 步让你成为更优秀的Coder
  13. 辽宁师范大学计算机学院查寝吗,辽宁师范大学宿舍怎么样 住宿条件好不好
  14. GIS当中矢量数据、影像数据、地形数据等常见数据格式的介绍
  15. VOIP Codec 三剑客之 ISAC/ILBC -- ISAC (5) LPC Parameter Encode 模块
  16. S2B2B-云分销系统介绍
  17. windows下,查看apk的包名、以及查找appActivity(aapt命令)
  18. 微信小程序 - 引入并使用 Fly.js 请求库(超级详细的教程及运行示例)提供 Fly.js 源码源文件下载,贴心的配置示例及注释,优雅快速的发起 http 网络请求
  19. [翻译]2020年综述:基于深度学习的视频超分辨率
  20. 创建一个 PHP 程序来扫描主机名上的开放端口。

热门文章

  1. java怎么设置表格分页显示_javaweb--layui表格分页
  2. c语言中ch1和ch2是什么意思,2020-05-26(C语言)1.将串str中所有值为ch1的字符转换成ch2的字符,如果str为空串,或者串中不含值为ch1的字符,则什么都不做.2.逆转函数...
  3. java后端判断图片尺寸(GB,MB,KB形式),图片色彩(黑白照或彩色照片),图片构图(横图竖图方图)
  4. python plc fx5u_FX5U系列三菱PLC型号选型一览表
  5. 八块腹肌是如何练成的?入门减脂训练加饮食计划
  6. php think queue work,thinkphp5.0无法使用think-queue包,php think queue:work命令不存在
  7. 查询收尾、带子查询的数据更新、视图 4.12数据库课程实验
  8. [转] Boost算法
  9. Python基础 F-03 函数-命名空间与作用域
  10. sql中的iif语句详解