基于新浪sae使用php生成图片发布图文微博
1.生成图片的代码:
- <?php
- header ("Content-type: image/png");
- mb_internal_encoding("UTF-8"); // 设置编码
- session_start();
- //$_SESSION['weiboContent'] = "我的微博时间轴";
- $text = $_SESSION['weiboContent'];
- function autowrap($fontsize, $angle, $fontface, $string, $width) {
- // 这几个变量分别是 字体大小, 角度, 字体名称, 字符串, 预设宽度
- $content = "";
- // 将字符串拆分成一个个单字 保存到数组 letter 中
- for ($i=0;$i<mb_strlen($string);$i++) {
- $letter[] = mb_substr($string, $i, 1);
- }
- foreach ($letter as $l) {
- $teststr = $content." ".$l;
- $testbox = imagettfbbox($fontsize, $angle, $fontface, $teststr);
- // 判断拼接后的字符串是否超过预设的宽度
- if (($testbox[2] > $width) && ($content !== "")) {
- $content .= "\n";
- }
- $content .= $l;
- }
- return $content;
- }
- $bg = imagecreatetruecolor(800, 350); // 创建画布
- $white = imagecolorallocate($bg, 255, 255, 255); // 创建白色
- // 将背景设为红色
- $bgc = imagecolorallocate($bg, 45, 45, 45);
- imagefill($bg, 0, 0, $bgc);
- for($i=0;$i<100;$i++) //加入干扰象素
- {
- $randcolor = ImageColorallocate($bg,rand(0,255),rand(0,255),rand(0,255));
- imagesetpixel($bg, rand(0,800) , rand(0,150) , $randcolor);
- }
- $text = autowrap(15, 0, "simsun.ttc", $text, 900); // 自动换行处理
- // 若文件编码为 GB2312 请将下行的注释去掉
- //$text = iconv("GB2312", "UTF-8//IGNORE", $text);
- imagettftext($bg, 12, 0, 10, 30, $white, "simsun.ttc", $text);
- $s = new SaeStorage();
- ob_start();
- imagepng($bg);
- $imgstr = ob_get_contents();
- $uid = $_SESSION["uid"];
- $filename = $uid.".png";
- $s->write("img",$filename,$imgstr);
- ob_end_clean();
- imagedestroy($bg);
- ?>
特别注意代码中这几行:
$s = new SaeStorage();
ob_start();
imagepng($bg);
$imgstr = ob_get_contents();
$uid = $_SESSION["uid"];
$filename = $uid.".png";
$s->write("img",$filename,$imgstr);
ob_end_clean();
imagedestroy($bg);
图片保存中只要使用imagepng相关的函数时要使用缓存,再使用sae的storage进行保存!!!
2.发布微博时获取图片url路径即可:
- $token = $_SESSION['token'];
- $weibo = new SaeTClientV2(WB_AKEY, WB_SKEY, $token);
- $imgurl = $s->getUrl("img",$filename);
基于新浪sae使用php生成图片发布图文微博的更多相关文章
- 基于新浪SAE平台的微信开发
自己的微信公众平台开发差不多了,欢迎关注试用哦,我会不定期在那里分享技术文章! 主要功能: 输入t+中文或者英文返回对应的英中翻译 输入[m]随机来首音乐听,建议在wifi下听 输入[ly+你的留 ...
- 从Python爬虫到SAE云和微信公众号:二、新浪SAE上搭建微信服务
目的:用PHP在SAE上搭建一个微信公众号的服务器. 1.申请一个SAE云账号 SAE申请地址:http://sae.sina.com.cn/ 可以使用微博账号登陆,SAE是新浪的云服务,时间也比较 ...
- Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解
Android中实现java与PHP服务器(基于新浪云免费云平台)http通信详解 (本文转自: http://blog.csdn.net/yinhaide/article/details/44756 ...
- 新浪SAE中文分词接口
最近发现新浪SAE平台上竟然也提供分词功能,分词效果也还不错,由新浪爱问提供的分词服务,研究了一番,做了一个简易版的在线调用接口(get方式,非post) 官网说明:http://apidoc.sin ...
- [SVN Mac自带SVN结合新浪SAE进行代码管理]
前一篇我转载了别人SVN的使用方法,前面的配置和服务器我不是很明白,自己尝试后发现我需要使用到的核心命令是下面一些. 新浪SAE提供了SVN代码管理仓库,只要进入相应应用,然后点击左侧代码管理,到最下 ...
- 【微信开发】 新浪SAE开发平台 注意事项
1. 微信开发 新浪SAE开发平台 验证Token 一直失败? 这个问题困扰了一个又一个的微信学习者,现在百度到的答案有:在echo $echoStr;之前添加header('content-type ...
- 【网站开发】在新浪SAE上搭建一个博客
概述 在新浪SAE上搭建一个博客 1.访问新浪SAE站点 http://sae.sina.com.cn/ 2.注册新浪SAE 3.选择应用仓库 4.选择WordPress 5.安装WordPress ...
- 【解决】 新浪sae固定链接404 问题
固定链接404 固定链接是一个很重要的内容,wordpress默认的链接很复杂,也不利于搜索引擎搜索.wordpress也提供修改固定链接的功能,在设置里面[固定链接]修改. 但是,使用新浪sae的小 ...
- 部署新浪SAE web.py Session及图片上传等问题注意事项
1.以下几条代码解决编码问题 import sysreload(sys)sys.setdefaultencoding('utf-8') 2.图片上传问题 需要开通sina的Storage服务,随便建个 ...
随机推荐
- SGU 185 Two shortest ★(最短路+网络流)
[题意]给出一个图,求 1 -> n的2条 没有重边的最短路. 真◆神题--卡内存卡得我一脸血= =-- [思路] 一开始我的想法是两遍Dijkstra做一次删一次边不就行了么你们还又Dijks ...
- UVA 1515 Pool construction 水塘(最大流,经典)
题意: 给一个h*w的矩阵,每个格子中是'#'和'.'两个符号之一,分别代表草和洞.现在要将洞给围起来(将草和洞分离),每条边需花费b元(即将一个洞包起来需要4边,将2个连续的洞包起来需要6边,省了2 ...
- jQuery Mobile 入门教程
你每天都会对着它讲话,和它玩游戏,用它看新闻——没错,它就是你裤兜里的智能手机.android,黑莓还是iphone?为了让你清楚意识到究竟哪些才算是智能手机,我在下面总结了一个智能手机系统/设备的列 ...
- maven的pom报plugins却是的解决方法2
Failure to transfer org.apache.maven.plugins:maven-plugins:pom:25 from https://repo.maven.apache.org ...
- java类加载器学习2——自定义类加载器和父类委托机制带来的问题
一.自定义类加载器的一般步骤 Java的类加载器自从JDK1.2开始便引入了一条机制叫做父类委托机制.一个类需要被加载的时候,JVM先会调用他的父类加载器进行加载,父类调用父类的父类,一直到顶级类加载 ...
- delphi 数据导出到word
procedure TFrmWeekAnalysisQry.BtnExportToExcelClick(Sender: TObject);var wordApp,WordDoc,WrdSelectio ...
- Hackers' Crackdown( UVA UVA 11825状压dp)
题意:N台电脑,现在有N种服务,现在你可以在每台电脑终止一项服务,他和他相邻的电脑都会被关闭,如果一项服务在所有电脑都没运行,该项服务成功被破坏,问最多能破坏几种服务. 分析:把n个集合分成尽量多组, ...
- 怎么解决div覆盖内容却没覆盖的问题?
一.在上下结构的div布局中,可能出现div覆盖div,但是内容却没有出现覆盖的现象.看看一个示例 1: <!DOCTYPE html> 2: <html> 3: <he ...
- 609B Load Balancing
题意:有n本书分m个类别,现在你要买两本不属于同一类别的书,问有多少种方案. #include<iostream> #include<cstdlib> #include< ...
- HDU-4669 Mutiples on a circle 环形DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4669 题意:给一串数字连乘一个环,求连续的子串中组成的新的数字能被K整除的个数. 首先容易想到用DP来 ...