You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.9 KiB
104 lines
2.9 KiB
<?php |
|
|
|
/** @package verysimple::Util */ |
|
|
|
/** |
|
* Utility to stream an image containing text to the browser |
|
* |
|
* @package verysimple::Util |
|
* @author Jason Hinkle |
|
* @copyright 1997-2011 VerySimple, Inc. |
|
* @license http://www.gnu.org/licenses/lgpl.html LGPL |
|
* @version 1.0 |
|
*/ |
|
class TextImageWriter |
|
{ |
|
/** |
|
* |
|
* @param |
|
* $message |
|
*/ |
|
|
|
/** |
|
* Output a png image to the browser, including headers |
|
* |
|
* @param string $message |
|
* @param int $width |
|
* @param int $height |
|
* @param array $backgroundColor |
|
* RGB values from 0-255. example: array(0,0,0); |
|
* @param array $fontColor |
|
* RGB values from 0-255. example: array(0,0,0); |
|
* @param int $fontId |
|
* (number between 1 and 5); |
|
*/ |
|
static function Write($message, $width = 250, $height = 150, $backgroundColor = null, $fontColor = null, $fontId = 1) |
|
{ |
|
if ($backgroundColor == null) { |
|
$backgroundColor = array ( |
|
255, |
|
255, |
|
255 |
|
); |
|
} |
|
|
|
if ($backgroundColor == null) { |
|
$backgroundColor = array ( |
|
0, |
|
0, |
|
0 |
|
); |
|
} |
|
|
|
$im = self::GetErrorImage($message, $width, $height, $backgroundColor, $fontColor, $fontId); |
|
header('Content-type: image/png'); |
|
imagepng($im); |
|
imagedestroy($im); |
|
} |
|
|
|
/** |
|
* Given text, returns an image reference with the text included in the image |
|
* |
|
* @param string $message |
|
* @param int $width |
|
* @param int $height |
|
* @param array $backgroundColor |
|
* RGB values from 0-255. example: array(0,0,0); |
|
* @param array $fontColor |
|
* RGB values from 0-255. example: array(0,0,0); |
|
* @param int $fontId |
|
* (number between 1 and 5); |
|
* @return int image reference |
|
*/ |
|
static function GetErrorImage($message, $width = 250, $height = 150, $backgroundColor = null, $fontColor = null, $fontId = 1) |
|
{ |
|
if ($backgroundColor == null) { |
|
$backgroundColor = array ( |
|
255, |
|
255, |
|
255 |
|
); |
|
} |
|
|
|
if ($backgroundColor == null) { |
|
$backgroundColor = array ( |
|
0, |
|
0, |
|
0 |
|
); |
|
} |
|
|
|
$msg = str_replace("\n", "", $message); |
|
$im = imagecreate($width, $height); |
|
$bgColor = imagecolorallocate($im, $backgroundColor [0], $backgroundColor [1], $backgroundColor [2]); |
|
$fontColor = imagecolorallocate($im, $fontColor [0], $fontColor [1], $fontColor [2]); |
|
$lines = explode("\r", wordwrap($msg, ($width / 5), "\r")); |
|
$count = 0; |
|
foreach ($lines as $line) { |
|
imagestring($im, $fontId, 2, 2 + ($count * 12), $line, $fontColor); |
|
$count++; |
|
} |
|
|
|
return $im; |
|
} |
|
}
|
|
|