2011-01-06 6 views
3

GDライブラリを使用したサムネイル10x10などのサムネイルのテーブルを作成しようとしています。 imagemagickにはおそらく便利なモンタージュ機能があるのがわかりましたが、GDライブラリでもこれを行うことができるのだろうかと思います。GDライブラリを使用したモンタージュまたはコラージュ

単純なhtmlテーブルにすべての画像を出力し、そのテーブルを画像に変換するだけで、それは可能かもしれないと思っていましたが、それは不可能かもしれません。助けや提案はありますか?

答えて

3

これは最も確実です。画像のサイズを変更したり、GDを使用して画像を別の画像にコピーすることができます。 、リサイズについての詳細を調べる私が作ったこのサイズ変更機能をチェックアウトするには:http://www.spotlesswebdesign.com/blog.php?id=1

をしかしさんがあなたのイメージは、すでに10×10にリサイズされている、とあなたは別の10×10のGIFにつながる100件のURLで満たされた配列を持っていたとしましょう。

$montage_image = imagecreatetruecolor(100, 100); 
$x_index = 0; 
$y_index = 0; 
foreach($array_with_100_10x10_gif_urls as $gif_image_url) { 
    $current_image = imagecreategif($gif_image_url); 
    imagecopy($montage_image, $current_image, $x_index * 10, $y_index * 10, 0, 0, 10, 10); 
    imagedestroy($current_image); 
    $x_index++; 
    if ($x_index > 9) { 
     $x_index = 0; 
     $y_index++; 
    } 
} 
// place code for saving the montage image as a file or outputting to teh browser here. 
imagedestroy($montage_image); 
+0

異なるタイプの画像を使用する場合は、画像タイプの関数でgif固有の機能を切り替えるだけです。複数の画像タイプを使用するには、ある種のスイッチを組み込む必要があります。 – dqhendricks

+0

ファイルを出力するには、このドキュメントを読んでください:http://www.php.net/manual/en/function.imagegif.php – dqhendricks

+0

これは素晴らしいことです、真剣に、今これはインターネット上の唯一の実例です。ありがとう。 – maplater

1

GDはできません。なぜimagemagickを使用しないのですか?

編集: GDでも可能ですが、手動で行う必要があります.GEM機能はimagemagickのモンタージュに匹敵しません。

+0

Er ...なぜGDでこれを行うことはできませんか?もちろんコードを書く必要がありますが、複数の画像を1つのモンタージュに合成することは、GDの能力の範囲内です。 –

+0

確かに、私は彼が匹敵する機能があるかどうか聞いていたと思う。私はもっ​​とはっきりしていたはずです。 – profitphp

+0

上記のGDコードを置き換えるために使用されているiMagick関数の例を投稿する人が気になる人は、とても感謝しています。私は、ドキュメントのコマンドラインの例を参照してくださいが、私は同等のPHPの例を見つけることはできませんでした。 – Dmitri

関連する問題