1

PHPで背景画像を持つさまざまなテキストフォント、スタイル、フォーマット、および配置でgif画像を作成することは可能ですか?

たとえば、次のような背景画像があります ここに画像の説明を入力

そして、背景画像に挿入したい画像は

ここに画像の説明を入力

そして、出力gif画像は次のようになります ここに画像の説明を入力

私はこれのためのコードを試しました

<?php
// Create a new image instance
$im = imagecreatetruecolor(300, 250);
$img = imagecreatefrompng('back.png');
// Make the background white
imagefilledrectangle($im, 0, 0, 300, 250, 0xEFEFEF);

// Draw a text string on the image

imagestring($im, 20,20, 40, 'Heading1', 0x000000);
imagecopymerge($img, $im, 0, 0, 0, 0, 300, 250, 70);
// Output the image to browser
header('Content-Type: image/gif');

imagegif($img,'test.gif');
imagedestroy($im);
?>

しかし、残念ながら、出力が期待どおりに得られないため、出力画像に表示されているように、背景画像にコンテンツを追加したいと考えています。

4

1 に答える 1

0

この設計の場合:

画像

次のコードを使用できます。

<?php
// Create a new image instance
$img = imagecreatefrompng('back.png');

// Draw a text string on the image
//  imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )
imagestring($img, 5, 20, 30, 'Heading1', 0x000000);
imagestring($img, 3, 180, 30, 'Heading 2 test desc', 0x000000);

imagestring($img, 3, 20, 80, 'Text info 3', 0xFF0000);   //red
imagestring($img, 1, 180, 80, 'Demonstration text', 0x000000);

imagestring($img, 5, 400, 170, 'Price here', 0xFF0000);   //red

$im = imagecreatefrompng('plane.png'); //load pic 2
imagecopymerge($img, $im, 0, 130, 0, 0, 165, 71, 70);
imagedestroy($im);

// Output the image to browser
header('Content-Type: image/gif');
imagegif($img);
imagedestroy($img);
?>

このimagestring()関数は、組み込みのかなり醜いフォントに制限されており、サイズオプションは1〜5のみです。代わりに、以下で説明するように、TTFフォントに別の関数を使用できます。

フォントを変更するには、独自のTTF形式のフォントを提供する必要があります。それらをスクリプトと同じフォルダーに配置し、代わりにimagestring()関数をこのフォントに置き換えます。パラメータは非常に似ており、そのコードを自分で置き換えるのは簡単なはずです。-functionの使用方法を説明するリンクは次のimagettftext()とおりです。

http://php.net/manual/en/function.imagettftext.php

于 2012-12-03T09:02:36.467 に答える