首页 网络技术
  1. 正文

php如何把文字转成图片?完整代码

应用场景

文字转图片的应用场景非常之多,比如文章防爬、躲避GFW敏感词审查等。

文字的样式(字号、字体、文字色、背景色、间距、方向等)都可以自定义,稍加优化就能达到以假乱真的效果。

代码

// (代码从网上整理而来)
// index.php

<?php
$text_string     = $_REQUEST["t"];
$font_ttf        = "simhei.ttf"; 
$font_size       = 14; 
$text_angle      = 0; 
$text_padding    = 0;
$the_box        = calculateTextBox($text_string, $font_ttf, $font_size, $text_angle); 
$imgWidth    = $the_box["width"] + $text_padding; 
$imgHeight    = $the_box["height"] + $text_padding; 
$image = imagecreate($imgWidth,$imgHeight); 
imagecolorallocatealpha($image,255,255,255,127); 
$color = imagecolorallocate($image,0,0,0); 
imagettftext($image, 
$font_size, 
$text_angle, 
$the_box["left"] + ($imgWidth / 2) - ($the_box["width"] / 2), 
$the_box["top"] + ($imgHeight / 2) - ($the_box["height"] / 2), 
$color, 
$font_ttf, 
$text_string); 

header("Content-Type: image/png"); 
imagepng($image); 
imagedestroy($image); 

function calculateTextBox($text,$fontFile,$fontSize,$fontAngle) { 
    $rect = imagettfbbox($fontSize,$fontAngle,$fontFile,$text); 
    $minX = min(array($rect[0],$rect[2],$rect[4],$rect[6])); 
    $maxX = max(array($rect[0],$rect[2],$rect[4],$rect[6])); 
    $minY = min(array($rect[1],$rect[3],$rect[5],$rect[7])); 
    $maxY = max(array($rect[1],$rect[3],$rect[5],$rect[7])); 
    return array( 
     "left"   => abs($minX) - 1, 
     "top"    => abs($minY) - 1, 
     "width"  => $maxX - $minX, 
     "height" => $maxY - $minY, 
     "box"    => $rect 
    ); 
} 
?>

//调用
<img src="/index.php?t=哈哈哈哈" />

本文标题:php如何把文字转成图片?完整代码
本文链接:https://www.qqooo.cn/post/1478.html
版权说明:网站文章均来源于手工整理和网友投稿,若有不妥之处请来信 feelym@88.com 处理,谢谢!