dポイントプレゼントキャンペーン実施中!

80X80のサイズの画像ファイル2枚で160X160の画像を作りたいと考えています。
大量にある80X80の画像ファイル(jpg)の全ての組合わせについて下記のような一枚のファイルを作りたいのです。(10枚なら10X10=100枚のファイル)
■□
□■
(黒色が80X80の画像ファイル)
用途は多量にあるチーム画像から対戦カードの1枚のファイルを一括で作ると言うものです。
どのようにプログラムを作ればよいかわかりません。
Perlじゃなくてもいいんですが、何か一括作成できるよいツールがありましたらご教授いただけませんでしょうか?

A 回答 (2件)

まずは、質問の内容を整理しましょうよ。


このような場で、沢山のことを一度に聞くと答えるほうも困ります。

そもそも聞きたいのは数学的な組み合わせですか、画像の合成ですか?両方?

#1の方が答えているような組み合わせなら、CPANを探せば欲しいモジュールが見つかるかも知れません。

たとえば、100個から2つを選ぶ組み合わせは45個あります。こうゆことじゃない?

#!perl
use Math::Combinatorics;

my $count = 0;
my @n = (1 .. 10);
my $combinat = Math::Combinatorics->new(count => 2,
data => [@n],
);

print "combinations of 2 from: ".join(",",@n)."\n";
print "------------------------".("--" x scalar(@n))."\n";
while(my @combo = $combinat->next_combination){
print join(' ', @combo)."\n";
++$count;
}
print "------------------------"."\n";
print "count = $count\n";

__END__

D:>COMBI.pl
combinations of 2 from: 1,2,3,4,5,6,7,8,9,10
--------------------------------------------
1 2
1 3
1 4
(途中、省略)
7 10
8 9
8 10
9 10
------------------------
count = 45

D:>
    • good
    • 0

以下不充分ながらご参考まで;



ご要望に見事一致する画像処理アプリケーションはおそらく見つからないと思います。そうした場合、処理の要点は「多量のチームから2チームを選ぶ『組み合わせ』の羅列の作成」であると思います。例えば以下のような処理が出来れば良いのではないでしょうか。

パラメタ :  全体=3  選択=2
結果 : 1,2  1,3  2,3

これに該当する java プログラミングの例があります。ロジックのご参考としてだけでも見てみてはいかがでしょう。 http://www.gulf.or.jp/~damayan/algo/CombEnum.java

ご要望の実現には、これ以外にいろいろ処理・考慮が必要です。
・得られた組み合わせ文字列を加工し、 
  バッチファイルやパラメタファイルを作成して画像結合ツールを動かす または
  HTMLドキュメントに表示するのであれば<img src=...>を2つ並べた記述を生成する
・画像ファイルの名前は数字を含めるなど統一形式にする

附記:
>10枚なら10X10=100枚のファイル
上に従うと全体=3での組み合わせは以下になります
1,1  1.2  1,3  2,1  2,2  2,3  3,1  3,2  3,3
対戦カードに (1,1) や (1,2の他に2,1) は必要ですか。

- 少しでもお役に立てば幸いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!