第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 python,tkinter 合并條件小于 2450 像素的圖像

使用 python,tkinter 合并條件小于 2450 像素的圖像

蝴蝶不菲 2023-03-22 16:48:53
我做了一個(gè)合并圖像的程序,我想升級(jí)這個(gè)程序,使圖像的總高度應(yīng)小于 2450 像素,并保存每個(gè)合并的圖像。import osimport tkinter.ttk as ttkimport  tkinter.messagebox as msgboxfrom tkinter import *    # __all__from tkinter import filedialogfrom PIL import  Image# add filedef add_file():files = filedialog.askopenfilenames(title="??? ??? ?????", \    filetypes =(('jpg ??', '*.jpg'), ('?? ??', '*.*')), \    initialdir='D:/jh/??/????/??? ??? ??? ????/image')    # file list that user can selectfor file in files:    list_file.insert(END, file)# file frame(file add, selected file delete)file_frame = Frame(root)file_frame.pack(fill='x', padx=5, pady=5)btn_add_file = Button(file_frame, padx=5, pady=5, width=12, text='????', command=add_file)btn_add_file.pack(side='left')btn_del_file = Button(file_frame, padx=5, pady=5, width=12, text='????', command=del_file)btn_del_file.pack(side='right')# list framelist_frame = Frame(root)list_frame.pack(fill='both', padx=5, pady=5)scrollbar = Scrollbar(list_frame)scrollbar.pack(side='right', fill='y')list_file = Listbox(list_frame, selectmode='extended', height=12, yscrollcommand=scrollbar.set)list_file.pack(side='left', fill='both', expand=True)scrollbar.config(command=list_file.yview)..... dest_path = os.path.join(txt_dest_path.get(), txt_file.get())    # txt_file get values after to input entry for file name. ex) desk  result_img.save(dest_path)   #save result_img to dest_path msgbox.showinfo('??', '??? ???????.') 在這個(gè)編碼中,list_file 是 Listbox 并且有幾個(gè)相同寬度但不同高度的圖像。我想合并這張圖片,但合并后的圖片高度不能超過(guò) 2450 像素。例如,list_file 是 a0、a1、a2、a3、a4、a5、a6。list_file 中圖片的高度為 200, 1500, 2400, 100, 300, 500, 1600。那么 list_file 應(yīng)該是 a0 <-(a0+a1), a1<-(a2), a2<-(a3, a4, a5) , a3<-(a6) [1700, 2400, 900, 1600]我想獲取條目值并保存 list_file 的每個(gè)圖像。例如輸入值為desk,文件名應(yīng)為desk 001.jpg、desk 002.jpg、desk 003.jpg、desk 004.jpg等。
查看完整描述

1 回答

?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

您可以使用Image.new(...)創(chuàng)建合并圖像,然后使用Image.paste(...)將所需圖像復(fù)制到合并圖像中:


def merge_images(imagelist, width, height, seqno):

    if imagelist:

        # create the merged image

        merged_image = Image.new('RGB', (width, height), (0,0,0))

        y = 0

        for image in imagelist:

            merged_image.paste(image, (0, y))

            y += image.height

        # save the merged image

        dest_path = os.path.join(txt_dest_path.get(), 'desk%03d.jpg' % seqno)

        merged_image.save(dest_path)

        seqno += 1

    return seqno


def merge():

    MAX_HEIGHT = 2450

    merge_list = []

    height = 0

    width = None

    seqno = 1

    for file in list_file.get(0, 'end'):

        image = Image.open(file)

        if width is None:

            width = image.width

        if height+image.height <= MAX_HEIGHT:

            merge_list.append(image)

            height += image.height

        else:

            seqno = merge_images(merge_list, width, height, seqno)

            merge_list = [image]

            height = image.height


    merge_images(merge_list, width, height, seqno)


查看完整回答
反對(duì) 回復(fù) 2023-03-22
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)