私のユーザーは現在、選択ボックスを使用してリストからいくつかのアイテムを選択できます。各アイテムのデータベースをチェックし、それらの詳細を出力するコードがあります。
各アイテムには画像があります。画像は視覚的なIDタグであり、オンザフライで生成され、実際にはどこにも保存されません。私は現在、WideImagePHPライブラリを使用してこれらの画像を生成しています。ユーザーが選択したアイテムの画像を生成し、それらを1つの画像またはA4サイズのページに収まるグリッド(印刷用)に結合できるようにする必要があります。これらの画像の合計8つは、A4ページ(2列、4行)に収まります。
私のコードは現在次のようになっています:
for($i=0;$i<count($_POST['print']);$i++){
$ids = $checkbox[$i];
$query = "SELECT * FROM items WHERE item_id = '".$ids."'";
$result = $mysqli->query($query);
while($row = $result->fetch_assoc()){
$item_name = $row['name']; // used when generating image
}
// WideImage PHP code (to generate image)
$image1 = WideImage::load('photos/image1.png')->resize(325, 225); // base image
$image2 = WideImage::load('photos/image2.png');
$image3 = WideImage::load($item_name);
$smaller = $image2->resize('124', '158', 'fill');
$result = $image1->merge($smaller, "196", "5", 100);
$finalimage = $result->merge($image3, "12", "1", 100);
}
私はこの時点まで立ち往生しています。これらの画像を1つの大きな画像に「結合」する方法や、グリッドに個別に配置する方法がわかりません。画像を事前に生成し、画像へのパスをデータベースに保存する方が簡単でしょうか?
すべての画像がすでに生成されている場合でも、それらを1つの大きな画像またはグリッドに結合するにはどうすればよいですか?