/**
* gd 画像マスク
*
* @copyright ugia.cn
*/
function imagemask(&$im, $x1, $y1, $x2, $y2, $deep)
{
for($x = $x1; $ x < $x2; $x += $deep)
{
for ($y = $y1; $y < $y2; $y += $deep)
{
$color = imagecolorat ($im, $ x +round($deep / 2), $y +round($deep / 2));
imagefilledrectangle ($im, $x, $y, $x + $deep, $y + $deep, $color);
}
}
}
?>
例:
header("content-type: image/png");
$im = imagecreatefromjpeg("test.jpg");
imagemask( $im, 57, 22, 103, 40, 8);
imagepng($im);
imagedestroy($im);
?>
/**
* gd 画像テキスト外側
*
* @copyright ugia.cn
*/
function imagetextouter(&$im, $size, $x, $y, $color, $fontfile, $text, $outer)
{
if (!function_exists('imagecolorallocatehex'))
{
function imagecolorallocatehex ($im, $s)
{
if($s{0} == "#") $s = substr($s,1);
$bg_dec = hexdec($s);
return imagecolorallocate($im ,
($bg_dec & 0xff0000) >> 16,
($bg_dec & 0x00ff00) >> 8,
($bg_dec & 0x0000ff)
);
}
}
$ttf = false;
if ( is_file($fontfile))
{
$ttf = true;
$area = imagettfbbox($size, $angle, $fontfile, $text);
$width = $area[2] - $area[0] + 2 ;
$height = $area[1] - $area[5] + 2;
}
else
{
$width = strlen($text) * 10;
$height = 16;
}
$im_tmp =画像作成($width, $height);
$white = imagecolorallocate($im_tmp, 255, 255, 255);
$black = imagecolorallocate($im_tmp, 0, 0, 0);
$color = imagecolorallocatehex($im, $ color);
$outer = imagecolorallocatehex($im, $outer);
if ($ttf)
{
imagettftext($im_tmp, $size, 0, 0, $height - 2, $black, $fontfile, $text );
imagettftext($im, $size, 0, $x, $y, $color, $fontfile, $text);
$y = $y - $height + 2;
}
else
{
imagestring( $im_tmp, $size, 0, 0, $text, $black);
imagestring($im, $size, $x, $y, $text, $color);
}
for ($i = 0; $i {
for ($j = 0; $j < $height; $j ++)
{
$c = imagecolorat($im_tmp, $i, $j);
if ($c !== $white)
{
imagecolorat ($im_tmp, $i, $j - 1) != $white || imagesetpixel($im, $x + $i, $y + $j - 1, $outer);
imagecolorat ($im_tmp, $i, $j + 1) != $white || imagesetpixel($im, $x + $i, $y + $j + 1, $outer);
imagecolorat ($im_tmp, $i - 1, $j) != $white || imagesetpixel($im, $x + $i - 1, $y + $j, $outer);
imagecolorat ($im_tmp, $i + 1, $j) != $white || imagesetpixel($im, $x + $i + 1, $y + $j, $outer);
// 取消し释、花火の発光效果同然
/*
imagecolorat ($i - 1、$ j - 1) != $white || imagesetpixel($im, $x + $i - 1, $y + $j - 1, $outer);
imagecolorat ($im_tmp, $i + 1, $j - 1) != $white || imagesetpixel($im, $x + $i + 1, $y + $j - 1, $outer);
imagecolorat ($im_tmp, $i - 1, $j + 1) != $white || imagesetpixel($im, $x + $i - 1, $y + $j + 1, $outer);
imagecolorat ($im_tmp, $i + 1, $j + 1) != $white || imagesetpixel($im, $x + $i + 1, $y + $j + 1, $outer);
*/
}
}
}
imagedestroy($im_tmp);
}
?> ;
例:
header("content-type: image/png");
$im = imagecreatefromjpeg("bluesky.jpg");
$white = imagecolorallocate($im, 255,255,255);
imagetextouter($ im, 9, 10, 20, '#000000', "simsun.ttc", '新年快乐', '#ffffff');
imagetextouter($im, 2, 10, 30, '#ffff00', "", 'hello, world!' , '#103993');
imagepng($im);
imagedestroy($im);
?>
马赛克:void imagemask ( resource image, int x1, int y1, int x2 , int y2, int deep)
imagemask() 座標 x1、y1 から x2、y2 (画像の左上角が 0, 0) の四角形領域を加算します。描边:void imagetextouter ( resource image, int size, int x, int y, string color, string fontfile, string text, string externalcolor)
imagetextouter() 将字符串 text 画到 image 代表的图像上,从坐标x、y(左上角が0,0)から始まる、色はcolor、辺棒で使用される色は外側色、フォントファイルで指定されたtruetype文字ファイルを使用します。 php で使用される gd ファイルとは異なり、フォントファイルに '/' が含まれていない場合、'.ttf' がファイル名に追加され、文字体パスが検索されます。表示された文字列は、最初の文字の基本点 (大まかに文字の左下角) を決定します。そうでない場合、x、y は最初の文字の右上角を決定します。
http://www.bkjia.com/PHPjc/444845.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444845.html