微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

画布内的超大图像

如何解决画布内的超大图像

我想在具有定义尺寸的画布内显示图像,但是当我调用 open() 函数在画布中打开并显示图像时,如果该图像的宽度和高度不同作为画布,画布被调整为图像的尺寸。我想要发生的是将图像放在画布内,即使尺寸不同,但画布保持相同的大小和尺寸,并且图像只是缩小或放大以填充画布,保持相同的比例.

from tkinter import *
from tkinter import filedialog
from PIL import ImageTk,Image
import numpy as np

root = Tk()
root.title("Photo Analysis")
root.geometry('1360x765')
root.iconbitmap(r'icon.ico')

main_frame = Frame(root)
main_frame.pack(fill="both",expand=True)

def open():

    for widget in img_display_canvas.winfo_children():
        widget.destroy()

    global my_image
    filename = filedialog.askopenfilename(initialdir="/",title="Select A File",filetypes=(("all files","*.*"),("jpg files","*.jpg"),("png files","*.png")))
    my_image = ImageTk.PhotoImage(Image.open(filename))
    my_image_label = Label(img_display_canvas,image=my_image).pack()

open_btn = Button(main_frame,text="Open File",padx=5,pady=2,font=('arial',10,'bold'),command=open)
open_btn.pack(pady=10)

img_display_canvas = Canvas(main_frame,width=800,height=450,bg='#d8d8d8')
img_display_canvas.pack()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。