好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php动态加水印pdf php动态网页制作教程

很多站长朋友们都不太清楚php动态加水印pdf,今天小编就来给大家整理php动态加水印pdf,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php如何实现自动加水印 2、 php动态水印 3、 我这有个已经实现了php上传图片的功能的类,但是现在还要给上传的每张图片加水印,请高手帮忙…… 4、 php mypdf 怎么指定页面添加水印 5、 如何把动态生成的php页面转化成pdf文件 php如何实现自动加水印

加水印逻辑有两种

一种是上传直接加水印

另一种是利用伪静态将图片访问重定向到处理程序,临时加水印缓存并输出

php处理图片加水印可以使用gd库中的相关函数

以下为临时手打代码,可以按此思路优化,有问题可以联系本人

//此处需根据上传的图片格式使用对应函数实例化图片

$img=imagecreatefromjpg($imgurl);

//根据水印图片路径实例化水印

$waterImg=imagecreatefrompng($waterpath);

//获取原图及水印图片尺寸,用以计算是否需要缩放及放置位置

list($width, $height, $type, $attr) = getimagesize($imgurl);

list($waterw, $waterh, $type, $attr) = getimagesize($waterpath);

$scale=1;

$waterReleaseW=$waterw;

$waterReleaseH=$waterh;

if($waterReleaseW>$width*.5){

    $scale=$width*.5/$waterw;

    $waterReleaseW = $width*.5;

    $waterReleaseH = $waterh*$scale;

}

if($waterReleaseH>$height*.5){

    $scale *= $height*.5/$waterh;

    $waterReleaseH = $height*.5;

    $waterReleaseW = $waterw*$scale;

}

//将水印图片拷贝到原图指定位置(此示例为右下角)

imagecopyresized($img,$waterImg,

    $width-$waterReleaseW-10,$height-$waterReleaseH-10,

    0,0,

    $width-10,$height-10,

    $waterw,$waterh);

//销毁水印图片实例

imagedestroy($waterImg);

//水印后图片保存

imagejpeg($img,$newpath);

php动态水印

水印本来就是图片的一部分.你还要打印,应该是要生成一张新图的.但生成新图就一定会占空间吗?你可以不保存图片的.<img src="/data/upload/help/202303/02/6a968500d4deb5c109748208450883d1.php?id=33846">,这样的可以的.打印是指web打印吗?

我这有个已经实现了php上传图片的功能的类,但是现在还要给上传的每张图片加水印,请高手帮忙……

给你一个封装的图片处理的类吧!包含缩放和剪切功能!

构造方法只需要传递图片所在路径即可!对应方法及参数都有注释!

请给予最佳答案!!

<?php

class Img{

private $path;

//构造方法,初始化图片信息

function __construct($path='./imgs/'){

$this->path=rtrim($path,'/').'/';

}

/**

* 对图片进行缩放

* 参数对应:文件名 缩放后宽度 缩放后高度 缩放后图片名前缀

*/

function thumb($name,$width,$height,$pre="th_"){

if(file_exists($this->path.$name)){

$imgInfo=$this->getInfo($name);

$img=$this->getImg($name,$imgInfo);

$newSize=$this->getNewSize($name,$width,$height,$imgInfo);

$newImg=$this->getNewInfo($img,$newSize,$imgInfo);

return $this->createNewImage($newImg, $pre.$name, $imgInfo);

}else{

echo '图片'.$this->path.$name.'不存在,请检查文件名及路径是否填写正确';

}

}

//辅助图片处理,获取图片的宽、高、类型属性

private function getInfo($name){

$temp=getImageSize($this->path.$name);

$imgInfo['width']=$temp[0];

$imgInfo['height']=$temp[1];

$imgInfo['type']=$temp[2];

return $imgInfo;

}

//辅助图片处理,获取创建的图片资源

private function getImg($name,$imgInfo){

$src=$this->path.$name;

switch($imgInfo['type']){

case 1:

$img=imagecreatefromgif($src);

break;

case 2:

$img=imagecreatefromjpeg($src);

break;

case 3:

$img=imagecreatefrompng($src);

break;

}

return $img;

}

//辅助图片处理,获取创建的图片资源

private function getNewSize($name,$width,$height,$imgInfo){

$newSize['width']=$imgInfo['width'];

$newSize['height']=$imgInfo['height'];

if($width<$imgInfo['width']){

$newSize['width']=$width;

}

if($height<$imgInfo['height']){

$newSize['height']=$height;

}

if($imgInfo["width"]*$newSize["width"] > $imgInfo["height"] * $newSize["height"]){

$newSize["height"]=round($imgInfo["height"]*$newSize["width"]/$imgInfo["width"]);

}else{

$newSize["width"]=round($imgInfo["width"]*$newSize["height"]/$imgInfo["height"]);

}

print_r($newSize);

return $newSize;

}

//辅助图片处理,获取缩放的图片资源

private function getNewInfo($img,$newSize,$imgInfo){

$newImg=imagecreatetruecolor($newSize['height'],$newSize['height']);

$otsc=imagecolortransparent($img);

if($otsc >=0 $otsc <= imagecolorstotal($img)){

$tran=imagecolorsforindex($img, $otsc);

$newt=imagecolorallocate($newImg, $tran["red"], $tran["green"], $tran["blue"]);

imagefill($newImg, 0, 0, $newt);

imagecolortransparent($newImg, $newt);

}

imagecopyresized($newImg, $img, 0, 0, 0, 0, $newSize["width"], $newSize["height"], $imgInfo["width"], $imgInfo["height"]);

imagedestroy($img);

return $newImg;

}

//辅助图片处理,创建新的图片

private function createNewImage($newImg, $newName, $imgInfo){

switch($imgInfo["type"]){

case 1://gif

$result=imageGif($newImg, $this->path.$newName);

break;

case 2://jpg

$result=imageJPEG($newImg, $this->path.$newName);

break;

case 3://png

$return=imagepng($newImg, $this->path.$newName);

break;

}

imagedestroy($newImg);

return $newName;

}

/**

* 对图片加水印

* 参数对应:需水印图片 水印图片 加水印后图片名前缀

*/

function waterMark($name,$wname,$pre="wa_"){

if(file_exists($this->path.$name)){

if(file_exists($this->path.$wname)){

$info=$this->getInfo($name);

$winfo=$this->getInfo($wname);

if($p=$this->getPosition($info,$winfo)){

$img=$this->getImg($name,$info);

$wImg=$this->getImg($wname,$winfo);

imagecopy($img, $wImg, $p["x"], $p["y"], 0, 0, $winfo["width"], $winfo["height"]);

imagedestroy($wImg);

return $this->createNewImage($img,$pre.$name,$info);

}else{

echo '水印图片尺寸大于原图片尺寸';

}

}else{

echo '水印图片'.$this->path.$wname.'不存在,请检查文件名及路径是否填写正确';

}

}else{

echo '图片'.$this->path.$name.'不存在,请检查文件名及路径是否填写正确';

}

}

//辅助图片处理,获取水印图片应处坐标

private function getPosition($info,$winfo){

if($info['width']<$winfo['width']||$info['height']<$winfo['height']){

return false;

}

$x=$info['width']-$winfo['width'];

$y=$info['height']-$winfo['height'];

return array('x'=>$x,'y'=>$y);

}

/**

* 图片剪切函数

* 对应参数:原图片 X坐标 Y坐标 宽度 高度

*/

function cut($name,$x,$y,$width,$height,$pre='cx_'){

$imgInfo=$this->getInfo($name);

$img=$this->getImg($name,$imgInfo);

$newImg=imagecreatetruecolor($width,$height);

imagecopyresampled($newImg,$img,0,0,$x,$y,$width,$height,$width,$height);

return $this->createNewImage($newImg, $pre.$name, $imgInfo);

}

}

php mypdf 怎么指定页面添加水印

在php中要为pdf文件添加水印,如果不想安装其他工具,想使用纯php的方式实现的话,我们可以借助开源免费的 FPDF和 FPDI 库。FPDF可以用来生成pdf文件,为pdf文件添加文字,图片等等,但是它不能读取现有的pdf文件。而FPDI则刚好可以用来读取已存在的pdf文件,并且由于这个库是从fpdf继承而来的,整合非常方便。可惜的是,免费的FPDI库还是有一点点限制,不够完美。

如何把动态生成的php页面转化成pdf文件

如果是可以打印,就可以使用虚拟打印机来处理:

方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;

方法二:用其他虚拟打印机转成PDF文件。

方法三:使用专门的转换软件,把文件转成PDF文件。

实在不能打印,还可以截屏嘛,然后按照下面的方法做出PDF的:

方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;

方法二:使用FreePic2Pdf软件,进行批量转换;

方法三:用其他虚拟打印机转成PDF文件。

关于php动态加水印pdf的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php动态加水印pdf php动态网页制作教程的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did242263
更新时间:2023-05-28   阅读:47次

上一篇: php自动升级源码 php在线更新源码

下一篇:开源web报表php 开源webexcel

最新资料更新

  • 1.PHP添加日期代码 php年月日时间代码
  • 2.php旋转图片保存 php转jpg
  • 3.安卓phpapp 安卓php服务器
  • 4.php编程圆面积 编程实现圆的面积
  • 5.php事务的隔离级别 php事务处理
  • 6.名称占位符php 占位符html
  • 7.图片执行php代码 图片执行php代码是什么
  • 8.怎么写php需求 php市场需求
  • 9.php表格循环 php循环函数
  • 10.php+引用swf php引用其他文件内的函数
  • 11.包含peintphp的词条
  • 12.PHP中嵌入script php嵌入html有哪几种方法
  • 13.有没有php扩展 php扩展怎么安装
  • 14.php函数rand PHP函数的参数传递包括
  • 15.php大数据并发 php大数据处理思路
  • 16.php暂停方法 php 停止执行
  • 17.php教程全局交流 phpunit教程
  • 18.php字体和颜色 php字体样式代码
  • 19.php大马离线版 php大马shell提权
  • 20.php网页滚动代码 php 如何做滑动加载

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]