簡単な説明
現在、3 つの列を持つギャラリーを作成しています。各列には、幅が同じで高さが異なる画像が含まれています。
列の画像はディレクトリから収集され、PHPglob()
関数を使用して配列に配置されます。これは簡単な部分です...
ギャラリーの例:
問題
これらの画像は列に動的に読み込まれて配置されるため、列の高さが大きく異なる可能性があります。
たとえば、2 つの縦向きの写真が列 1 に配置され、2 つの横向きの写真が列 2 に配置されている場合、列は次のように非常に不均一になります。
列の高さが一致する可能性は非常に低いですが、与えられた画像にできるだけ近づけたいので、取得した画像を見て列に配置するアルゴリズムを形成したいと考えています。高さができるだけ近い 3 つの列を返します。
したがって、たとえば、スクリプトは画像を再ソートして次のように配置することで、上記の問題を修正します。
正しいアルゴリズムがあれば、これを書くことができますが、これを行うための最良の手順が思い浮かびません。誰でも手順を提案できますか?
考えられる解決策
私が考えた方法の1つ(これには欠陥があると思うので、より良い方法があると思います):
- 結合されたすべての画像の高さを合計し、列の数 (3) で割ります。これにより、目指す高さが得られます
- 画像を列配列に分散し、列の高さを超えると、次の列にオーバーフローします。
- 残った画像を最初の列に配置し、次に 2 番目の列などに配置します...
前もって感謝します