1

所以我有这个 php 脚本,它在图像上生成随机文本。 文本文件是一个不同的 php 文件,图像文件是一个单独的 php 文件。该image.php文件调用它text.php来选择随机文本。

这个版本可以正常工作,但是可以在我现有的图像文件上生成随机图像吗?

我已经包含了我的代码的当前版本。

这是 text.php:

<?php
    $t[] = 'Sample text 1 ';
    $t[] = 'Sample text 2';
    shuffle($t);
?>

这是 image.php:

<?php
    require_once 'text.php';
    $text = wordwrap($t[0], 31, "\n", true); //text
    $image = imagecreatefromjpeg('img_empty.jpg'); //background image
?>

欢迎任何建议。

4

3 回答 3

0

如果您想创建带有随机文本的图像,这将做到

图像.php

require_once 'text.php';
header("Content-type: image/png");

$string = wordwrap($t[0], 31, "\n", true); //text
$font  = 2;
$width  = imagefontwidth($font) * strlen($string);
$height = imagefontheight($font);
$image = imagecreatetruecolor ($width,$height);
$white = imagecolorallocate ($image,255,255,255);
$black = imagecolorallocate ($image,0,0,0);
imagefill($image,0,0,$white); 
imagestring ($image,$font,0,0,$string,$black);
imagepng ($image);
imagedestroy($image);

更新代码到您的响应: 如果您想在特定图像上获取随机文本

require_once 'text.php';
header("Content-type: image/png");
$string = wordwrap($t[0], 31, "\n", true); //text


$image  = ImageCreateFromJPEG("img_empty.jpg");

//Defining color. Making the color of text as red (#FFF) as 255,000,000
$color = imagecolorallocate($image , 255, 000, 000); // 

//put string over image with $color as color
imagestring($image,5,126,22,$string,$color);

imagejpeg($image,NULL,100);

上面的代码将在您指定的图像上放置一个红色随机文本。这对我有用。还可以尝试更改 imagecolorallocate() 函数中定义的颜色。

参考:http ://blog.doh.ms/2008/02/12/adding-text-to-images-in-real-time-with-php/

于 2012-08-03T12:45:56.187 回答
0

你的问题有点不清楚。你不需要 text.php 那么你可以直接使用它在 image.php 中的代码,如下所示。

图像.php

<?php
$t[] = 'Sample text 1 ';
$t[] = 'Sample text 2';
shuffle($t);
$text = wordwrap($t[0], 31, "\n", true); //text
$image = imagecreatefromjpeg('img_empty.jpg'); //background image
于 2012-08-03T12:36:25.197 回答
0

这里有几个选项

  1. 保存几张背景图片,然后在其中随机选择一张。
  2. 在输出之前使用GD 和图像函数在现有图像上绘制(例如,查看imageline()以绘制线条)。
  3. 使用 GD 的imagecreatetruecolor()来创建图像,甚至可以得到随机的宽度/高度。
于 2012-08-03T12:49:46.470 回答