sib*_*ibi 3 python-imaging-library python-3.x os.path
我刚刚有了四个星期的 Python 经验。使用 Tkinter 创建一个工具,将新的公司徽标粘贴到现有图像上。
下面的方法是获取给定目录中的所有图像并将新徽标粘贴到初始级别。现有图像、编辑图像、x 位置、y 位置、图像预览和少量数据存储在全局实例self.images_all_arr中。
def get_img_copy(self):
self.images_all_arr = []
existing_img_fldr = self.input_frame.input_frame_data['existing_img_folder']
for file in os.listdir(existing_img_fldr):
img_old = Image.open(os.path.join(existing_img_fldr, file))
img_new_copy = img_old.copy()
self.pasteImage(img_new_copy, initpaste=True) #process to paste new logo.
view_new_img = ImageTk.PhotoImage(img_new_copy)
fname, fext = file.split('.')
formObj = {
"fname": fname,
"fext": fext,
"img_old": img_old,
"img_new": img_new_copy,
"img_new_view": view_new_img,
"add_logo": 1,
"is_default": 1,
"is_opacityImg": 0,
"pos_x": self.defult_x.get(),
"pos_y": self.defult_y.get()
}
self.images_all_arr.append(formObj)
Run Code Online (Sandbox Code Playgroud)
在 Tkinter 屏幕中预览每个图像后,根据需要对位置 x 和 y 进行一些调整(更新列表self.images_all_arr中的 pos_x 和 pos_y )。
好吧,一旦全部完成。需要保存编辑后的图像。下面的方法保存图像,迭代列表self.images_all_arr并调用保存方法作为img['img_new'].save(dir_output)因为img['img_new']已更新图像。
def generate_imgae(self):
if len(self.images_all_arr):
dir_output = 'xxxxx'
for img in self.images_all_arr:
print(img['img_new'])
img['img_new'].save(dir_output)
print('completed..')
Run Code Online (Sandbox Code Playgroud)
但它返回以下错误,
Tkinter 回调 Traceback 中的异常(最近一次调用最后一次):文件“C:\Program Files (x86)\Python38-32\lib\site-packages\PIL\Image.py”,第 2138 行,保存格式 = EXTENSION[ext ] KeyError: '' 上述异常是以下异常的直接原因: Traceback (most 最近一次调用最后): File "C:\Program Files (x86)\Python38-32\lib\tkinter_ init _.py", line 1883,在调用 中返回 self.func(*args) 文件“C:\Users\662828\WORKSPACE\AAA_python_projects\AMI_automation_poc2\position_and_images.py”,第 241 行,在generate_imgae img['img_new'].save(dir_output) 文件“ C:\Program Files (x86)\Python38-32\lib\site-packages\PIL\Image.py",第 2140 行,在保存中引发 ValueError("未知文件扩展名:{}".format(ext)) 来自 e ValueError:未知的文件扩展名:
| 归档时间: |
|
| 查看次数: |
26980 次 |
| 最近记录: |