Nginx怎么通过PHP代理给图片加水印(详细代码)
3401
本篇文章给大家带来了关于nginx怎么通过PHP代理给图片添加水印的相关知识,以及应该怎么调用的相关问题,通过代码示例来搞定,下面一起来看一下,希望对大家有帮助。
nginx 配置代理
- location ~ /image/.*\.(gif|jpg|jpeg|png)$ {
- proxy_pass http://127.0.0.1:8888/test/watermark?url=$request_uri;
- }
/img/
匹配要代理的目录前缀,$request_uri
参数为访问的图片路径。
php 水印类
- /** 水印类
- * Class Watermark
- * @package app\test
- */
- class Watermark
- {
- /** 合成图片水印
- * @param string $dstImage 原图片
- * @param string $waterImg 水印图
- */
- public static function imageMarking($dstImage, $waterImg){
- //获取图片信息
- $dstInfo = getimagesize($dstImage);
- $waterInfo = getimagesize($waterImg);
- //创建图像
- $dstImgObj = self::imageCreateFrom($dstImage, $dstInfo[2]);
- $waterImgObj = self::imageCreateFrom($waterImg, $waterInfo[2]);
- //合成水印
- imagecopyresized($dstImgObj,$waterImgObj,0, 0,0,0,$dstInfo[0], $dstInfo[1],$waterInfo[0],$waterInfo[1]);
- //输出图片
- self::imageOut($dstImgObj,$waterInfo[2]);
- //销毁资源对象
- imagedestroy($dstImgObj);
- imagedestroy($waterImgObj);
- }
- /** 生成图片对象
- * @param string $imgFile 图片路径
- * @param string $type 图片类型
- * @return false|\GdImage|resource
- */
- private static function imageCreateFrom($imgFile, $type) {
- switch ($type) {
- case IMAGETYPE_GIF:
- return imagecreatefromgif($imgFile);
- case IMAGETYPE_JPEG:
- return imagecreatefromjpeg($imgFile);
- case IMAGETYPE_PNG:
- return imagecreatefrompng($imgFile);
- default : //其他格式
- }
- }
- /** 输出图片
- * @param string $imageObj
- * @param string $type
- */
- private static function imageOut($imageObj,$type){
- switch ($type) {
- case 1:
- header("Content-Type: image/gif");
- imagegif($imageObj);
- break;
- case 2:
- header("Content-Type: image/jpeg");
- imagejpeg($imageObj);
- break;
- case 3:
- header("Content-Type: image/png");
- imagepng($imageObj);
- break;
- default: //其他格式
- }
- }
- }
调用示例
- public function watermark(){
- //图片路径前缀
- $image = '/data/img/' . input('url');
- self::imageMarking($image,'watermark.png');
- exit;
- }
nginx
水平好的,可以试着用 http_image_filter_module
模块来加水印, 我这也是无奈之举
本文网址:https://www.zztuku.com/detail-12275.html
站长图库 - Nginx怎么通过PHP代理给图片加水印(详细代码)
申明:本文转载于《learnku》,如有侵犯,请 联系我们 删除。
您还没有登录,请 登录 后发表评论!
提示:请勿发布广告垃圾评论,否则封号处理!!