サンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
class SampleController extends Controller { public function sample() { $imagePath = "storage/app/testData.png"; $texts = [ 'サンプル文字列1行目', 'サンプル文字列2行目', 'サンプル文字列3行目', ]; // 色情報なしの画像を作成 $image = imagecreatetruecolor(500, 500); // 白色の色情報をrgbで定義 $whiteColor = imagecolorallocate($image, 255, 255, 255); // 画像内の指定した範囲の背景色を四角い白色で塗りつぶす // 引数:(画像情報, 左上x, 左上y, 右下x, 右下y, 色情報) imagefilledrectangle($image, 0, 0, 1000, 1000, $whiteColor); // フォントをパスで指定 $font = 'storage/app/fonts/ipag.ttf'; // 改行した時にどれだけ下げるか $y = 30; foreach ($testTexts as $text) { // 生成した画像に文字を貼り付ける imagettftext($image, 24, 0, 0, $y, 0x101010, $font, $text); // 指定した高さ分y座標を下げることで、改行をする $y = $y + 30; } // ファイルの種類 header('Content-Type: image/png'); // 画像を指定したパスに作成 imagepng($image, $imagePath); } } |
参考サイト
【Lravel・PHP】文字列を画像にして保存する!(配列から画像生成も可能)
https://zenn.dev/fijii_rin/articles/8e703fa9b315ff
【PHP】文字を埋め込む画像を生成する際、文字列を中央揃えにしたり、文字列幅に合わせて折り返したり、文字列幅に合わせて画像サイズを変えたり
https://cpoint-lab.co.jp/article/202104/19827/
Laravel9でテキスト画像を動的に作る
https://qiita.com/mashmy/items/b2165f91990e2ee12507