首頁 >後端開發 >php教程 >PHP圖片描​​邊字與馬賽克(例)

PHP圖片描​​邊字與馬賽克(例)

WBOY
WBOY原創
2016-07-25 08:55:141198瀏覽
  1. /**
  2. * GD 圖片文字外層
  3. *
  4. * @copyright UGiA.CN
  5. * [url=home.php?mod=space&uid=17823]@LINK[/url] www.ugia.cn / ?p=88
  6. * @edit bbs.it-home.org
  7. */
  8. function imagetextouter(&$im, $size, $x, $y, $顏色, $fontfile, $text, $outer)
  9. {
  10. if (!function_exists('ImageColorAllocateHEX'))
  11. {
  12. function ImageColorAllocateHEX($im, $s)
  13. function ImageColorAllocateHEX($im, $s)
  14. if($s{0} == "#") $s = substr($s,1);
  15. $bg_dec = hexdec($s);
  16. return imagecolorallocate($im,
  17. ( $ bg_dec & 0xFF0000) >> 16,
  18. ($bg_dec & 0x00FF00) >> 8,
  19. ($bg_dec & 0x0000FF)
  20. );
  21. } if (is_file($fontfile))
  22. {
  23. $ttf = true;
  24. $area = imagettfbbox($size, $angle, $fontfile, $text);
  25. $width = $area[2] - $area[0] 2;
  26. $height = $area[1] - $area[5] 2;
  27. }
  28. else
  29. {
  30. $width = strlen($text) * 10;
  31. $height = 16;
  32. }
  33. $im_tmp = imagecreate($width, $height);
  34. $white = imagecreate($width, $height);
  35. $white = imagecolorallocate($ im_tmp, 255, 255, 255);
  36. $black = imagecolorallocate($im_tmp, 0, 0, 0);
  37. $color = ImageColorAllocateHEX($im, $color);
  38. $color = ImageColorAllocateHEX($im, $color);
  39. $color = ImageColorAllocateHEX($im, $color);
  40. $.m = ImageColorAllocateHEX($im, $color);
  41. $ $im, $outer);
  42. if ($ttf)
  43. {
  44. imagettftext($im_tmp, $size, 0, 0, $height - 2, $black, $fontfile, $text);
  45. imagettftext($im, $size, 0, $x, $y, $color, $fontfile, $text);
  46. $y = $y - $height 2;
  47. }
  48. else
  49. {
  50. 映像字串($im_tmp, $size, 0, 0, $text, $black);
  51. 映像字串($im, $size, $x, $y, $text, $顏色);
  52. }
  53. For ($i = 0; $i {
  54. for ($j = 0; $j {
  55. $c = ImageColorAt($im_tmp, $i, $j);
  56. if ($c !== $white)
  57. {
  58. ImageColorAt ($im_tmp, $i, $ j - 1) != $white || imagesetpixel($im, $x $i, $y $j - 1, $outer);
  59. ImageColorAt ($im_tmp, $i, $j 1) != $white || imagesetpixel($im, $x $i, $y $j 1, $outer);
  60. ImageColorAt ($im_tmp, $i - 1, $j) != $white || imagesetpixel($im, $x $i - 1, $y $j, $outer);
  61. ImageColorAt ($im_tmp, $i 1, $j) != $white || imagesetpixel($im, $x $i 1, $y $j, $outer);
  62. // 取消註釋,與Fireworks的發光效果相同
  63. /*
  64. ImageColorAt ($im_tmp, $i - 1, $j - 1) != $white || imagesetpixel($im, $x $i - 1, $y $j - 1, $outer);
  65. ImageColorAt ($im_tmp, $i 1, $j - 1) != $white || imagesetpixel($im, $x $i 1, $y $j - 1, $outer);
  66. ImageColorAt ($im_tmp, $i - 1, $j 1) != $white || imagesetpixel($im, $x $i - 1, $y $j 1, $outer);
  67. ImageColorAt ($im_tmp, $i 1, $j 1) != $white || imagesetpixel($im, $x $i 1, $y $j 1, $outer);
  68. */
  69. }
  70. }
  71. }
  72. imagedestroy($im_tmp);
}
imagedestroy($im_tmp); } imagedestroy($im_tmp);
}

imagedestroy($im_tmp);

}
imagedestroy($im_tmp);
}
    imagedestroy($im_tmp);
  1. }
  2. ?>
  3. 複製程式碼
  4. 2,呼叫範例:
header("內容類型:image/png");

$im = imagecreatefromjpeg("bluesky.jpg "bluesky.jpg " ;

$white = imagecolorallocate($im, 255,255,255);

imagetextouter($im, 9, 10, 20, '#000000', "simsun.ttc", '新年快樂', '#ffffff ') ;

imagetextouter($im, 2, 10, 30, '#FFFF00', "", '你好,世界!', '#103993');PHP圖片描​​邊字與馬賽克(例)imagepng($im);

imagedestroy ($im);

?>
    複製程式碼
  1. 感謝馬賽克:void imagemask (resource image, int x1, int y1, int x2 , inty int x1, int y1, int x2 , inty int x1, int y1, int x2 , inty int x1, int , int 深) imagemask() 把座標 x1,y1 到 x2,y2(圖左上角為 0, 0)的幾何加上馬賽克。 深為模糊程度,數字越大越模糊。
  2. 效果,如下圖:
  3. 1,馬賽克函數程式碼:
  4. /**
  5. * GD 影像遮罩
  6. *
  7. * @edit bbs.it-home.org
  8. */
  9. 函數 imagemask(&$im, $x1, $y1, $ x2 , $y2, $deep)
{
for($x = $x1; $x { for ($y = $y1 ; $ y { $color = ImageColorAt ($im, $x round($deep / 2), $y round($deep / 2)); imagefilledrectangle ($im, $x, $y, $x $deep, $y $deep, $color); } }}?>複製程式碼

2,呼叫範例:

  1. header("Content-type: image/png");
  2. $im = imagecreatefromjpeg("test.jpg" );
  3. imagemask($im, 57, 22, 103, 40, 8);
  4. imagepng($im);
  5. imagedestroy($im);
  6. ?>
複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn