使用 PHP 创建 PNG 图片

示例 #1 使用 PHP 创建 PNG 图片

<?php

header
("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
这个示例可以从包含如下标签的页面中调用:<img src="button.php?text=text">。上面的 button.php 脚本然后获取这个 "text" 字符串并将其叠加到一个基础图像上,在本例中是 "images/button1.png",并输出生成的图像。这是一种非常方便的方式,可以避免每次想要更改按钮文本时都要绘制新的按钮图像。使用这种方法,它们是动态生成的。

添加备注

用户贡献的备注 1 个备注

viishalkumarsahu at gmail dot com
7 年前
函数在请求时创建随机的 png 图片,例如...
<img src="create_image.php?s=008080_F_1000_200&t=Sample%20Image%20Drawn%20By%20PHP" alt="GD Library Example Image" >

这是 create_image.php
<?php
$setting
= isset($_GET['s']) ? $_GET['s'] : "FFF_111_100_100";
$setting = explode("_",$setting );
$img = array();

switch (
$n = count($setting)) {
case
$n > 4 :
case
3:
$setting[3] = $setting[2];
case
4:
$img['width'] = (int) $setting[2];
$img['height'] = (int) $setting[3];
case
2:
$img['color'] = $setting[1];
$img['background'] = $setting[0];
break;
default:
list(
$img['background'],$img['color'],$img['width'],$img['height']) = array('F','0',100,100);
break;
}

$background = explode(",",hex2rgb($img['background']));
$color = explode(",",hex2rgb($img['color']));
$width = empty($img['width']) ? 100 : $img['width'];
$height = empty($img['height']) ? 100 : $img['height'];
$string = (string) isset($_GET['t']) ? $_GET['t'] : $width ."x". $height;

header("Content-Type: image/png");
$image = @imagecreate($width, $height)
or die(
"Cannot Initialize new GD image stream");

$background_color = imagecolorallocate($image, $background[0], $background[1], $background[2]);
$text_color = imagecolorallocate($image, $color[0], $color[1], $color[2]);

imagestring($image, 5, 5, 5, $string, $text_color);
imagepng($image);
imagedestroy($image);

function
hex2rgb($hex) {
// Copied
$hex = str_replace("#", "", $hex);

switch (
strlen($hex)) {
case
1:
$hex = $hex.$hex;
case
2:
$r = hexdec($hex);
$g = hexdec($hex);
$b = hexdec($hex);
break;

case
3:
$r = hexdec(substr($hex,0,1).substr($hex,0,1));
$g = hexdec(substr($hex,1,1).substr($hex,1,1));
$b = hexdec(substr($hex,2,1).substr($hex,2,1));
break;

default:
$r = hexdec(substr($hex,0,2));
$g = hexdec(substr($hex,2,2));
$b = hexdec(substr($hex,4,2));
break;
}

$rgb = array($r, $g, $b);
return
implode(",", $rgb);
}
To Top