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

ランダムなテキストで画像を作成したい場合は、これで十分です

image.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

ここにいくつかのオプションがあります

  1. 複数の背景画像を保存し、その中からランダムに 1 つを選択します。
  2. GD と画像関数を使用して、既存の画像を出力する前に描画します(たとえば、線を描画するにはimageline()を参照してください)。
  3. GD のimagecreatetruecolor()を使用して画像を作成し、ランダムな幅/高さを取得します。
于 2012-08-03T12:49:46.470 に答える
0

あなたの質問は少し不明確です.. text.php が必要ない場合は、以下に示すように image.php でそのコードを直接使用できます。

image.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 に答える