【学习打卡】第17天 PHP进阶篇-GD库图像处理
2022/8/19 4:22:50
本文主要是介绍【学习打卡】第17天 PHP进阶篇-GD库图像处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:PHP进阶篇-GD库图像处理
课程章节:第3章 图像常用操作
主讲老师:king
课程内容:
今天学习的内容包括:
3-6 文字水印的封装及测试
3-7 图片水印的实现
图片水印的封装及测试
课程收获:
我的环境是 php 8.19 nts版本
文字水印函数封装 图片水印函数的封装
//文字水印 /** * 文字水印 * @param $filename * @param $fontfile * @param $text * @param $dest * @param $pre * @param $delsource * @param $r * @param $g * @param $b * @param $alpha * @param $size * @param $angle * @param $x * @param $y * @return string */ function water_text($filename,$fontfile,$text = '佳和信息',$dest = 'waterText',$pre = 'waterText_',$delsource=false,$r = 255,$g = 0,$b = 0,$alpha = 60, $size = 30, $angle = 0,$x = 0,$y = 30) { //$filename = 'images/1.jpg'; // $r = 255; // $g = 0; // $b = 0; // $alpha = 60; // $size = 30; // $angle = 0; // $x = 0; // $y = 30; //$fontfile = 'fonts/kaiti.ttc'; //$text = '佳和信息'; $fileInfo = getImageInfo($filename); $image = $fileInfo['createFun']($filename); $color = imagecolorallocatealpha($image, $r, $g, $b, $alpha); imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text); //$dest = 'waterText'; //$pre = 'waterText_'; if ($dest && !file_exists($dest)) { mkdir($dest, 0777, true); } $randNum = mt_rand(100000, 999999); $dstName = "{$pre}{$randNum}" . $fileInfo['ext']; $destination = $dest ? $dest . '/' . $dstName : $dstName; $fileInfo['outFun']($image, $destination); imagedestroy($image); if ($delsource) { @unlink($filename); } return $destination; }
function water_pic($dstName,$srcName,$pos=0,$dest = 'waterPic',$pre = 'waterPic_',$pct=50,$delsource=false){ // $dstName='1.jpg'; // $srcName='jdlogo.png'; // $pos=0; // $pct=50; // $dest = 'waterPic'; // $pre = 'waterPic_'; // $delsource=false; $dstInfo=getImageInfo($dstName); $srcInfo=getImageInfo($srcName); $dst_im=$dstInfo['createFun']($dstName); $src_im=$srcInfo['createFun']($srcName); $src_width=$srcInfo['width']; $src_height=$srcInfo['height']; $dst_width=$dstInfo['width']; $dst_height=$dstInfo['height']; switch ($pos){ case 0: $x=0; $y=0; break; case 1: $x=($dst_width-$src_width)/2; $y=0; break; case 2: $x=$dst_width-$src_width; $y=0; break; case 3: $x=0; $y=($dst_height-$src_height)/2; break; case 4: $x=($dst_width-$src_width)/2; $y=($dst_height-$src_height)/2; break; case 5: $x=$dst_width-$src_width; $y=($dst_height-$src_height)/2; break; case 6: $x=0; $y=$dst_height-$src_height; break; case 7: $x=($dst_width-$src_width)/2; $y=$dst_height-$src_height; break; case 8: $x=$dst_width-$src_width; $y=$dst_height-$src_height; break; default: $x=0; $y=0; break; } imagecopymerge($dst_im,$src_im,$x,$y,0,0,$src_width,$src_height,$pct); if ($dest && !file_exists($dest)) { mkdir($dest, 0777, true); } $randNum = mt_rand(100000, 999999); $dstName = "{$pre}{$randNum}" . $dstInfo['ext']; $destination = $dest ? $dest . '/' . $dstName : $dstName; $dstInfo['outFun']($dst_im,$destination); imagedestroy($src_im); imagedestroy($dst_im); if ($delsource) { @unlink($dstName); } return $destination; }
这篇关于【学习打卡】第17天 PHP进阶篇-GD库图像处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享
- 2024-10-20fruitcake/php-cors 该怎么使用-icode9专业技术文章分享
- 2024-10-18PHP7.1可以使用哪个版本的swoole-icode9专业技术文章分享