微信头像加水印-PHP实现

  • 需求描述
  • 代码
  • 微信默认头像不是高清头像的解决办法

需求描述

公众号小程序用户引流, 微信头像上面加 "武汉加油"水印图片, 用户通过微信分享的方式吸引用户关注公众号

代码

/*** 下载微信头像* @param $url 微信头像路径(授权登录获取的头像路径)*/
public function downloadImageFromUrl($url) {  // 临时存放图片路径$path = base_path('public/pplgWechat/');// 因为不知道最后接受到的文件是什么格式,先建立一个临时文件,用于保存$tmpFile = tempnam(sys_get_temp_dir(), 'image');# 文件下载 BEGIN #// 打开临时文件,用于写入(w),b二进制文件$resource = fopen($tmpFile, 'wb');// 初始化curl$curl = curl_init($url);// 设置输出文件为刚打开的curl_setopt($curl, CURLOPT_FILE, $resource);// 不需要头文件curl_setopt($curl, CURLOPT_HEADER, 0);// 执行curl_exec($curl);// 关闭curlcurl_close($curl);// 关闭文件fclose($resource);# 文件下载 END #// 获取文件类型if (function_exists('exif_imagetype')) {// 读取一个图像的第一个字节并检查其签名(这里需要打开mbstring及php_exif)$fileType = exif_imagetype($tmpFile);} else {// 获取文件大小,里面第二个参数是文件类型 (这里后缀可以直接通过getimagesize($url)来获取,但是很慢)$fileInfo = getimagesize($tmpFile);$fileType = $fileInfo[2];}// 根据文件类型获取后缀名$extension = image_type_to_extension($fileType);// 计算指定文件的 MD5 散列值,作为保存的文件名,重复下载同一个文件不会产生重复保存,相同的文件散列值相同$md5FileName = md5_file($tmpFile);// 最终保存的文件$returnFile = $path . $md5FileName . $extension;// 检查传过来的路径是否存在,不存在就创建if (!is_dir($path)) {mkdir($path, 0777, true);}// 复制临时文件到最终保存的文件中copy($tmpFile, $returnFile);// 释放临时文件@unlink($tmpFile);// 返回保存的文件路径return $returnFile;
}/*** 微信头像加水印* @param $url 微信头像路径(本地头像文件路径)*/
public function mergeImage($url,$user_id)
{$water = str_replace('/','\\',base_path('public/pplgWechat/') . 'water.png');$im = imagecreatefromjpeg($url);$stamp= imagecreatefrompng($water);// 设置水印图像的外边距,并且获取水印图像的尺寸$marge_right = 0;$marge_bottom = 0;$sx = imagesx($stamp);$sy = imagesy($stamp);// 利用图像的宽度和水印的外边距计算位置,并且将水印复制到图像上imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));$pic_name = 'head_'.$user_id.'.jpg';// 图片全路径$pic = base_path('public/pplgWechat/') . $pic_name;$this->url =  $pic;$this->head_name =  $pic_name;// 输出图像并释放内存// header('Content-type: image/png');imagepng($im,$pic);imagedestroy($im);}

微信默认头像不是高清头像的解决办法

// 微信头像原始路径(小图)
// https://wx.qlogo.cn/mmopen/vi_32/RWib8FCKWu7d78sU05kCKAd2IWBf5d0m4DldCDu7fEqtGvibL2jG8uRFxvhiap54SjwCc7dxgC2ltNicb0c1PYVH6w/132
// 微信高清头像原始路径(大图)
// https://wx.qlogo.cn/mmopen/vi_32/RWib8FCKWu7d78sU05kCKAd2IWBf5d0m4DldCDu7fEqtGvibL2jG8uRFxvhiap54SjwCc7dxgC2ltNicb0c1PYVH6w/0
$high = str_ireplace('132','0 ',$headimgurl)

如有错误之处, 大家评论区交流, 谢谢

PHP之微信头像加水印相关推荐

  1. python头像右上角加红色数字_利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...

  2. python程序设置头像_利用python实现微信头像加红色数字功能

    通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下: 使用PIL图像处理库,导入moudle ...

  3. 微信小程序之用canvas给微信头像加小红旗(canvas无法使用网络资源绘画)

    微信小程序之使用canvas给微信头像加小红旗 情境:新中国成立70周年,普天同庆.昨天看到朋友圈中被刷屏的@官方微信 给自己的头像加小红旗.服务器被卡爆,很多朋友说换头像不成功. 任务:打算自己写一 ...

  4. 不用@微信官网了,用python给自己的微信头像加个小国旗

    国旗LOGO(png透明格式): 微信头像 合成结果: import base64 import os import re from io import BytesIO from PIL import ...

  5. 如何给微信头像加个圣诞帽

    程序IT圈 只提供有用的编程技术,关注即可习得新技能 昨天,朋友圈突然被这样一句话给刷屏了,[请给我头像一个圣诞帽@微信官方],一开始我还不明真相哈 ,属于后知后觉的一种.后面仔细观察,发现有的人过十 ...

  6. cocos creator 2.4.3cc.assetManager.loadRemote 加载不了微信头像

    cocos creator 2.4.3cc.assetManager.loadRemote 加载不了微信头像 项目升级了2.4.3,发现cc.assetManager.loadRemote这个接口微信 ...

  7. 你还在@微信官方,我来教你用Python生成你想要的微信头像

    前言 今天早上@微信官方突然火了,一句"请给我一面国旗@微信官方"刷遍朋友圈. 到底是什么呢?我们先来看看朋友圈 当然,这只是零零散散的部分截图,看到这些,一股热血洒了出来,我兴致 ...

  8. 圣诞节首发:给头像加圣诞帽小工具!

    最近看到小伙伴问我,马上要到圣诞节了,怎么给微信头像加圣诞帽,其实方法非常的简单,先来看一下我设置好的效果吧! 这里面的帽子样式非常多,有10多种样式可以选择,比如红色圣诞帽.绿色圣诞帽等等,下面给小 ...

  9. 用python做头像_你还在@微信官方?我来教你用Python生成你想要的微信头像

    今天早上 @微信官方 突然火了, 一句"请给我一面国旗@微信官方" 刷遍朋友圈. 到底是什么呢? 我们先来看看朋友圈 请输入图片描述 微信官方 哪有那么多时间给我换头像. 当然, ...

最新文章

  1. java_pandas_Joinery
  2. simulink中mask设置_Mask Editor 概述
  3. mybatis相关知识
  4. Django打造在线教育平台_day_4: 找回密码
  5. 使用Roboguice依赖注入规划Android项目
  6. 激活函数:sigmoid、Tanh、ReLU
  7. RSA签名算法 - Java加密与安全
  8. 【渝粤教育】国家开放大学2018年秋季 2247T社会工作政策法规 参考试题
  9. UCLA博士带入门:室内场景下智能机器人的环境感知及定位
  10. 通过AO连接多个EO并进行使用
  11. java调用指定浏览器打开指定网址
  12. oracle sql 取日期,Oracle SQL日期及日期格式获取命令,oraclesql
  13. 提交辞职申请时,领导极力挽留,还答应加薪,要不要留下来?
  14. wecp 启动 php,WEPE工具箱VIP版及网络版合盘20171102
  15. vue中使用粒子特效
  16. Legion 一款网络渗透工具
  17. 北京消费扶贫双创中心启用 2000余种特色产品长期展销
  18. java word 纸张大小_Java 设置Word页边距、页面大小、页面方向、页面边框
  19. JQuery冒泡(选择并上传多张图片)
  20. 祝所有的程序猿春节愉快,好好休息

热门文章

  1. 台式计算机wifi老掉线,电脑总掉线是什么原因_电脑总掉线wifi正常
  2. SaaS Metrics 2.0 – A Guide to Measuring and Improving what Matters
  3. Linux运维学习笔记之三十一:监控利器Nagios实战
  4. 感动的文章(天使每个blog都有这篇文章yo)
  5. leetcode17题 电话号码的字母组合
  6. 20155227辜彦霖《基于Cortex-M4的UCOSIII的应用》课程设计个人报告
  7. 教你如何使用Ceph块设备增强OpenStack云环境
  8. STM32L152RE实现串口发送及接收数据
  9. UI灵感分析笔记#3(22.1.2)
  10. 全城最浪漫的颜值影城在这