我沒有python的經驗,但該腳本的所有者沒有響應。在python中創建圖片的蒙太奇
當我通過此腳本拖動我的照片創建一個蒙太奇時,它會切斷右側邊緣上最後一張照片的一半。廣
爲4張的圖片,
1 2 3 4
5 6 7 8
圖片4,8通常會得到減半。圖片的空間(它的空白雖然)
我想知道什麼會造成這種情況。
我認爲它有可能是裁剪,但它幾乎像一半的圖片不導入或檢測。
那麼,你將選定照片上的腳本,它輸出這樣的事情
所以,你可以拿一把的照片或截圖,並把它們合併成一個單一的文件,反而容易增加每張照片個別。
每張照片的尺寸最大爲500x250。
編輯: 這裏是預覽上傳,正如你所看到的圖像具有插槽,但他們「消失」如果是有道理的。
編輯2: 這個腳本一次工作,我沒有編輯它或任何東西。它曾經在〜70截圖蒙太奇。沒有錯誤或任何東西。我的電腦可以做些什麼來破壞圖像的導入?
#!/usr/bin/env python
import os
import sys
from time import strftime
import Image
import ImageDraw
import ImageFont
# parameters
row_size = 4
margin = 3
def generate_montage(filenames):
images = [Image.open(filename) for filename in filenames]
width = 0
height = 0
i = 0
sum_x = max_y = 0
width = max(image.size[1]+margin for image in images)*row_size
height = sum(image.size[0]+margin for image in images)
montage = Image.new(mode='RGBA', size=(width, height), color=(0,0,0,0))
try:
image_font = ImageFont.truetype('font/Helvetica.ttf', 18)
except:
try:
image_font = ImageFont.load('font/Helvetica-18.pil')
except:
image_font = ImageFont.load_default()
draw = ImageDraw.Draw(montage)
offset_x = offset_y = 0
i = 0
max_y = 0
max_x = 0
offset_x = 0
for image in images:
montage.paste(image, (offset_x, offset_y))
text_coords = offset_x + image.size[0] - 45, offset_y + 120
draw.text(text_coords, '#{0}'.format(i+1), font=image_font)
max_x = max(max_x, offset_x+image.size[0])
if i % row_size == row_size-1:
offset_y += max_y+margin
max_y = 0
offset_x = 0
else:
offset_x += image.size[0]+margin
max_y = max(max_y, image.size[1])
i += 1
if i % row_size:
offset_y += max_y
filename = strftime("Montage %Y-%m-%d at %H.%M.%S.png")
montage = montage.crop((0, 0, max_x, offset_y))
montage.save(filename)
if __name__ == '__main__':
old_cwd = os.getcwd()
os.chdir(os.path.dirname(sys.argv[0]))
try:
if len(sys.argv) > 1:
generate_montage(sys.argv[1:])
finally:
os.chdir(old_cwd)
我們需要更多的信息:1)這個腳本的目的是什麼? 2)你投入了多大尺寸的圖像? 3)你能告訴我們一個輸入和輸出的截圖嗎?不知道這個腳本應該做什麼,很難確定如何解決它。如果您使用適當的詳細信息編輯問題,則此問題將移至審覈隊列中以重新打開。 –
應該有你要求的所有信息。不知道我還能怎麼說呢。感謝您幫助我提供所需的內容。 – user2565679