PHP文字生成图片,并加入自动换,根据文字长度生成图片
实现输入文字可以生成图片。
首先创建一个index.php的文件:
<!DOCTYPE html> <html> <head> <title>文字转图片</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css"> <style> .container { margin-top: 50px; } .form-group { margin-bottom: 20px; } .preview { margin-top: 20px; text-align: center; } .preview img { max-width: 100%; height: auto; } .download { margin-top: 20px; text-align: center; } </style> </head> <body> <div class="container"> <h1 class="text-center">文字转图片</h1> <form action="generate.php" method="post"> <div class="form-group"> <label for="text">请输入要生成图片的文字:</label> <textarea class="form-control" id="text" name="text" rows="5" required></textarea> </div> <button type="submit" class="btn btn-primary btn-block">生成图片</button> </form> <div class="preview"> <?php if(isset($_GET['image'])): ?> <img src="<?php echo $_GET['image']; ?>" alt="生成的图片"> <div class="download"> <a href="<?php echo $_GET['image']; ?>" class="btn btn-success" download>下载图片</a> </div> <?php endif; ?> </div> </div> </body> </html>
下面是创建执行文件:generate.php
<?php // 设置字体文件路径 $font_file = 'font.ttf'; // 获取要生成图片的文字 $text = $_POST['text']; // 创建画布 $width = 600; $height = strlen($text) * 10; $image = imagecreatetruecolor($width, $height); // 设置背景色和文字颜色 $bg_color = imagecolorallocate($image, 255, 255, 255); $text_color = imagecolorallocate($image, 0, 0, 255); // 填充背景色 imagefill($image, 0, 0, $bg_color); // 设置字体大小和位置 $font_size = 20; $font_x = 10; $font_y = 50; // 将文字写入画布 $lines = explode(" ", wordwrap($text, $width / $font_size)); foreach ($lines as $line) { imagettftext($image, $font_size, 0, $font_x, $font_y, $text_color, $font_file, $line); $font_y += 30; } // 生成图片文件名 $file_name = md5($text . time()) . '.png'; // 保存图片文件 imagepng($image, $file_name); // 销毁画布 imagedestroy($image); // 跳转到生成的图片页面 header('Location: index.php?image=' . $file_name); exit; ?>
下面要下载一个字体运营生成的字体
发表评论 取消回复