是否有任何算法用於安排大量不同尺寸的小圖像並將它們分組爲較大的圖像? 任何人有任何想法,我應該從哪裏開始調查?羣組大圖像
編輯: 基本上我想要讓這樣的事情http://www.google.ro/images/srpr/nav_logo27.png在PHP。我並不真的期待這種複雜性。 我會使用圖像作爲CSS sprite,如果它有任何區別。
是否有任何算法用於安排大量不同尺寸的小圖像並將它們分組爲較大的圖像? 任何人有任何想法,我應該從哪裏開始調查?羣組大圖像
編輯: 基本上我想要讓這樣的事情http://www.google.ro/images/srpr/nav_logo27.png在PHP。我並不真的期待這種複雜性。 我會使用圖像作爲CSS sprite,如果它有任何區別。
使用的優化算法可能是您的問題矯枉過正。編碼優化算法將需要大量的預研究。即使實施一個現成的圖書館可能是一個很大的問題需要解決。
您可以自己設計啓發式:
使用大圖像的寬度和高度作爲輸入。
把它看作好像填滿每一行,並在行填滿後繼續到下一行。 並開始逐個插入圖像。
如果使用算法,最終的圖像將會更加優化。體積較小。但是,如果您的圖片在尺寸上沒有太大差異,則差異不會很大。
如果您的圖像尺寸確實有所不同,請根據其尺寸變化最大(寬度或高度)進行排序。然後開始按順序插入圖像。
我想,這就是所謂的mosaic
,所以你可以通過看這件事
開始一般來說是很難計算的問題,而是近似解存在。
編輯:相關問題 Packing rectangular image data into a square texture
你想使用生成的圖像作爲CSS精靈? – c0rnh0li0 2010-11-23 18:17:31
如果只是一次,則不需要算法。有很多CSS精靈程序。 – Ross 2010-11-25 16:43:12
即使你使用了一種效率不高的方法(以便它創建一個尺寸較大的圖像),它應該不會有多大關係;大部分浪費的空間將會是相同的顏色,並且會壓縮得很好,因此您的整體圖像尺寸不會太大。使用客戶端緩存,他們只會下載一次圖片......所以不要在這個問題上浪費太多時間。 – 2010-11-28 05:10:54