ホームページ >バックエンド開発 >PHPチュートリアル >PHP GD ライブラリのウォーターマークの自動行折り返しでは関数テキストを表示できません
オンラインで見つかったいくつかのコードで構成されています。ただし、最後のステップで表示されないものは、独自のテキスト コンテンツではありません。コードは次のとおりです。
<?php if(isset($_GET['str']) and $_GET['str']!=""){ $im = imagecreatefromjpeg('gd.jpg'); $font_size = 12; $fontname = '33.ttf'; $black = imagecolorallocate($im,0,0,0); $str = $_GET['str'] ; function chararray($str,$charset="gbk"){ $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; preg_match_all($re[$charset], $str, $match); return $match; } /* 返回一个字符串在图片中所占的宽度 */ function charwidth($fontsize,$fontangle,$ttfpath,$char){ $box = @imagettfbbox($fontsize,$fontangle,$ttfpath,$char); $width = max($box[2], $box[4]) - min($box[0], $box[6]); return $width; } /* 这几个变量分别是 字体大小, 角度, 字体名称, 字符串, 预设宽度, 编码 */ function autowrap($fontsize,$fontangle,$ttfpath,$str,$width,$charset='gbk'){ $_string = ""; $_width = 0; $temp = chararray($str); //var_dump($temp); foreach ($temp[0] as $k=>$v){ $w = charwidth($fontsize,$fontangle,$ttfpath,$v); $_width += intval($w); if (($_width > $width) && ($v !== "")){ $_string .= "\n"; $_width = 0; } $_string .= $v; $w = 0; //echo $v; } $_string = mb_convert_encoding($_string, "html-entities","gbk" ); return $_string; } $str = autowrap(12,0,'33.ttf','返回一个字符的数组',250); imagettftext($im,$font_size,0,35,160,$black,$fontname,$str); header('Content-type: image/jpeg'); imagejpeg($im); imagedestroy($im) ; } ?>
あなたの最後の文「1文字の配列を返す単語をstrで渡されたパラメータに置き換える方法は?」を置き換えてもらえますか? " ? "例を書いて投稿してください。上記のコードの最後のステップは何を参照していますか? imagettftext($im,$font_size,0,35,160,$black,$fontname,$str);
最後の文「「1 文字の配列を返す」という単語を str に変更するにはどうすればよいですか?パラメータについて? " 例を書いて投稿してください。上記のコードの最後のステップは何を参照していますか? imagettftext($im,$font_size,0,35,160,$black,$fontname,$str);