
<?php |
error_reporting(7); |
define('ROOT', getcwd()); |
define('BASEDIR', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)); |
if ($_POST['text']) { |
$ret = array(); |
$text = $_POST['text']; |
try { |
$ret['imgurl'] = text2img($text, (array) $_REQUEST['config']); |
} |
catch (Exception $e) { |
$ret['imgurl'] = print_r($e, true); |
} |
echo str_replace('\\/', '/', json_encode($ret)); |
exit(0); |
} |
function text2img($text, $options = array()) |
{ |
$text .= "\n-------------------------------\n"; |
$text .= "http://iscup.com"; |
$rows = substr_count($text, "\n") + 1; |
$font_path = $options['fontfile'] ? $options['fontfile'] : ROOT . '/SIMSUN.TTC'; |
if (!file_exists($font_path)) |
throw new Exception(" 找不到字体文件:$font_path "); |
$font_size = $options['fontsize'] ? $options['fontsize'] : 12; |
$padding = $options['padding'] ? $options['padding'] : 30; |
$row_plus_height = $options['row_plus_height'] ? $options['row_plus_height'] : 4; |
$border = 1; |
$im_width = 430; |
$im_height = ($row_plus_height + ($font_size * 4) / 3) * $rows + ($padding + $border) * 2; |
$im = @imagecreatetruecolor($im_width, $im_height); |
if (!$im) |
throw new Exception("初始化图片失败,请检查 GD 配置"); |
imagefilledrectangle($im, $border, $border, ($im_width - 2 * $border), ($im_height - 2 * $border), imagecolorallocate($im, 255, 255, 255)); |
imagettftext($im, $font_size, 0, ($border + $padding), (($font_size * 4) / 3 + $border + $padding), imagecolorallocate($im, 0, 0, 0), $font_path, $text); |
$base_path = '/files'; |
$base_filename = date("Y-m-d,H-i-s") . '.png'; |
$short_filename = $base_path . '/' . $base_filename; |
$short_url = rtrim(BASEDIR, '/') . $short_filename; |
@mkdir(ROOT . $base_path, 0777, true); |
$filename = ROOT . $short_filename; |
if (!imagepng($im, $filename)) { |
throw new Exception("创建图片时出错。"); |
} |
@imagedestroy($im); |
return $short_url; |
} |
?> |
<!DOCTYPE HTML><html><head> |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
<title>长微博工具</title> |
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.6.2/jquery.min.js"></script> |
</head> |
<body> |
<h1>长微博工具</h1> |
<p><textarea name="text" id="text" rows="20" cols="60"></textarea></p> |
<pre id="pre"></pre> |
<p><a target="_blank" href="" id="url"></a></p> |
<p><input type="button" id="format" value="格式化" /><input type="button" id="button" value="生成长微博" /> <br/><br/><br/><br/> <a href="http://changweibo.debake.com/" style="font-size:9px; color:#666; text-decoration:none">长微博</a></p> |
<script type="text/javascript"> |
BIG_FONT_WIDTH = 44; |
function f(v,w,c){ |
c = 0; |
w = w || BIG_FONT_WIDTH; |
return v.replace(/[\S\s]/g,function(a){ |
if(/[\r\n]/.test(a)) { |
c = -2; |
return "\r\n"; |
} |
c += /[\x00-\xFF]/.test(a) ? 1 : 2; |
if(c>=w){ |
c = 0; |
return "\r\n"+a; |
} |
return a; |
}); |
} |
$(function(){ |
$("#format").click(function(){$("#text").val(f($("#text").val()));}); |
$("#button").click(function(){ |
if($("#text").val().length<1){ |
alert("无内容"); |
} else { |
$.ajax({ |
type:"POST", |
url:location.pathname, |
data:"text="+$("#text").val(), |
dataType:"json", |
success:function(m){ |
if(m.message)$("#pre").innerHTML(m.message); |
if(m.imgurl)$("#url").attr("href", m.imgurl).text(m.imgurl); |
} |
}); |
} |
}); |
}); |
</script> |
</body> |
</html> |



