ホームページ >バックエンド開発 >PHPチュートリアル >画像にストロークとモザイクを追加する PHP メソッド、_PHP チュートリアル

画像にストロークとモザイクを追加する PHP メソッド、_PHP チュートリアル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-07-13 10:12:041177ブラウズ

PHPを使用して画像にストロークとモザイクを追加する方法、

この記事の例では、PHP で画像にストロークとモザイクを追加する方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです

モザイク: void imagemask (リソース画像、int x1、int y1、int x2、int y2、int deep)

imagemask() は、座標 x1,y1 ~ x2,y2 (画像の左上隅が 0,0) の長方形領域にモザイクを追加します。

深さはぼかしの度合いで、数値が大きいほどぼやけます。

ストローク: void imagetextouter (リソース画像、int サイズ、int x、int y、文字列の色、文字列フォントファイル、文字列テキスト、文字列のアウターカラー)

imagetextouter() は、座標 x、y (左上隅は 0, 0) から開始して、image で表される画像上に文字列テキストを描画します。色は color、境界線に使用される色は outcolor、指定された TrueType です。 by fontfile は使用するフォントファイルです。

フォントファイルが指定されていない場合は、gdの内部フォントが使用されます。 PHPが使用するgdライブラリによっては、フォントファイルが「/」で始まらない場合、ファイル名に「.ttf」が付加され、ライブラリ定義のフォントパスが検索されます。

フォント ファイルが指定されている場合、x、y で表される座標は最初の文字の基点 (おそらく文字の左下隅) を定義します。それ以外の場合、x、y は最初の文字の右上隅を定義します。

fontfile は、使用する TrueType フォントのファイル名です。

text は、フォント内の最初の 255 文字を超える文字にアクセスするために、一連の utf-8 文字 ({ 形式) を含めることができるテキスト文字列です。

color は 16 進形式 #rrggbb の色です。#ff0000 は赤です。

outercolor ストロークの色、16 進数の #rrggbb 形式。

コードをコピーします コードは次のとおりです:
/**
 *GDイメージマスク
 *
 * @copyright ugia.cn
 
 */
関数 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("コンテンツタイプ: 画像/png"); $im = imagecreatefromjpeg("test.jpg"); イメージマスク($im, 57, 22, 103, 40, 8); 画像png($im); 画像破壊($im); ?>


操作効果は以下の図に示されています:




コードをコピーします

コードは次のとおりです:

/**
 * gd画像テキスト外側
 *
 * @copyright ugia.cn
 
 */
関数 imagetextouter(&$im, $size, $x, $y, $color, $fontfile, $text, $outer)
{
    if (!function_exists('imagecolorallocatehex'))
    {
        関数 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;
    }
    それ以外は
    {
        $width = strlen($text) * 10;
        $高さ = 16;
    }
    $im_tmp = imagecreate($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;
    }
    それ以外は
    {
        画像文字列($im_tmp, $size, 0, 0, $text, $black);
        画像文字列($im, $size, $x, $y, $text, $color);
    }
    for ($i = 0; $i     {
        for ($j = 0; $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 ($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);
                imagecolorat ($im_tmp, $i + 1, $j + 1) != $white || imagesetpixel($im, $x + $i + 1, $y + $j + 1, $outer);
                */
            }
        }
    }
    imagedestroy($im_tmp);
}

//用法例:
header("コンテンツタイプ: 画像/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);
?>

ここで説明されている大規模な PHP プログラムの設計が役立つことを望みます。

http://www.bkjia.com/PHPjc/925128.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/925128.html技術記事 php で絵文字とグラフィックスを追加する方法。ここでは、php で絵文字とグラフィックスを追加する方法を例で説明します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。