1

私のユーザーは現在、選択ボックスを使用してリストからいくつかのアイテムを選択できます。各アイテムのデータベースをチェックし、それらの詳細を出力するコードがあります。

各アイテムには画像があります。画像は視覚的な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つの大きな画像またはグリッドに結合するにはどうすればよいですか?

4

1 に答える 1

0

<img />サイズ変更した画像をキャッシュフォルダに書き込んでから、タグを使用して通常の画像と同じように出力できます。このようにして、すでにキャッシュフォルダにある画像をスキップすることもできます(高さと幅に応じて名前を付けると仮定しますe.g. image1-325x225.png) 。

画像をファイルに書き込む方法を確認してください:http ://wideimage.sourceforge.net/documentation/saving-images/

それらをhtmlで出力した後、CSSを使用してスタイルを設定できます。または、それらをテーブルとして出力します。それはあなた次第です。

于 2012-09-26T03:56:18.203 に答える