2012-07-06 75 views
2

我有一個腳本將8到12個圖像保存到本地文件夾。這些圖像總是GIF。我正在尋找一個python腳本來將該特定文件夾中的所有圖像合併爲一個圖像。合併的8-12幅圖像將不得不縮小,但我不想妥協圖像的原始質量(分辨率)(即,當放大合成圖像時,它們看起來會像最初一樣)Python:從一個文件夾導入多個圖像並縮放/合併爲一個圖像?

我目前能夠做到的唯一方法就是將每張圖片複製到電源點。

這是可能的與蟒蛇(或任何其他語言,但最好是Python)?

作爲輸入給腳本,我想鍵入在僅圖像存儲(即,C:\ Documents和Settings \用戶\ My Documents \我的圖片\ BearImages)的路徑

編輯:我下載的ImageMagick,並一直使用它與python api和命令行。這個簡單的命令很適合我想要的:montage "*.gif" -tile x4 -geometry +1+1 -background none combine.gif

回答

0

您可能希望將圖像處理部分外包給ImageMagick。它有一個montage command,讓你90%的方式;只是傳遞一些選項和目錄中文件的名稱。

+0

我已經下載了ImageMagick並一直在研究這個。我正在瀏覽到存儲所有圖像的文件夾:C:\ Documents and Settings \ All Users \ Documents \ My Pictures \ Pictures,然後開始只使用命令行工具。我相信這些命令會是這樣的:'$ montage -adjoin -coalesce ...「'如何告訴蒙太奇命令看一個特定的文件夾我使用命令行瀏覽到該文件夾​​,但是我一直沒有能夠得到它的工作。我也嘗試了這個程序的python API,但也沒有運氣 – Jonny 2012-07-11 14:07:46

+0

我沒有看到蒙太奇的參數,它會使用一個目錄而不是單個文件列表。最後10%將使用Python獲取所需目錄中的文件列表('os.listdir(string_containing_path)'),將文件名附加到包含蒙太奇命令的字符串,並使用'subprocess.call'運行它。 – James 2012-07-12 17:33:25

0

看看Python Imaging Library
handbook包含兩個打開文件的例子,結合它們並保存結果。

+0

我正在翻看,但我真的不知道從哪裏開始。我想過使用'merge'功能,但它們的尺寸必須相同 – Jonny 2012-07-06 19:06:38

+0

如果我正確地理解了你,你想在不同的圖像之間放置一個大畫布。然後找出每張圖片在這個畫布上的大小,並創建一個很大的圖片,調整每個圖片的大小並將其定位到新的畫布上。 – mariusnn 2012-07-06 19:25:44

1

如果你想能夠放大圖像,你做而不是想要縮放它們。您必須依賴圖像查看器在顯示時進行縮放 - 這正是PowerPoint現在爲您所做的。

輸入圖像是GIF,因此它們都包含調色板來描述圖像中的哪些顏色。如果您的圖像並不都具有相同的調色板,則在組合它們之前,需要將它們轉換爲24位色。這意味着輸出不能是另一個GIF;根據您是否可以忍受圖像質量的損失,好的選擇是PNG或JPG。

您可以使用PIL來讀取圖像,合併它們並寫入結果。您需要創建一個與最終結果大小相同的新圖像,並將每個較小的圖像複製到其中的不同部分。

0

最簡單的做法是將圖像變成numpy矩陣,然後構建一個新的,更大的numpy矩陣來容納所有矩陣。然後將np矩陣轉換回圖像。當然這將是巨大的,所以你可能想要縮減比例。

相關問題