> php教程 > php手册 > 基于新浪sae使用php生成图片发布图文微博

基于新浪sae使用php生成图片发布图文微博

WBOY
풀어 주다: 2016-06-06 19:59:51
원래의
915명이 탐색했습니다.

1.生成图片的代码: ?phpheader (Content-type: image/png);mb_internal_encoding(UTF-8); // 设置编码session_start();//$_SESSION['weiboContent'] = 我的微博时间轴;$text = $_SESSION['weiboContent'];function autowrap($fontsize, $angle, $fontface,

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;$iwrite("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);
로그인 후 복사


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿