📌  相关文章
📜  将 .GIF 转换为 .BMP,在Python中反之亦然

📅  最后修改于: 2022-05-13 01:55:01.725000             🧑  作者: Mango

将 .GIF 转换为 .BMP,在Python中反之亦然

有时需要在我们需要具有指定扩展名的图像文件的地方附加图像。我们有不同扩展名的图像,需要使用指定的扩展名进行转换,就像这样,我们将扩展名为 .bmp 的图像转换为 .gif,反之亦然。在本文中,我们将把 .GIF 转换为 .BMP,将 .BMP 转换为 .GIF。

此外,我们将创建代码的 GUI 界面,因此我们将需要 Library Tkinter 。 Tkinter 是一个Python绑定到 Tk GUI 工具包。它是 Tk GUI 工具包的标准Python接口,它提供了 GUI 应用程序的接口。

需要的模块:

  • Tkinter Tkinter 是一个Python绑定到 Tk GUI 工具包。
  • PIL:这是一个 Python图像库为Python解释器提供图像编辑功能。

让我们逐步实施:

第 1 步:导入库。

from PIL import Image

第 2 步:JPG 转 GIF

To covert the image From BMP to GIF : {Syntax}
img = Image.open("Image.bmp")
img.save("Image.gif")

第 3 步:GIF 转 JPG

To convert the Image From GIF to PNG
img = Image.open("Image.gif")
img.save("Image.bmp")

方法:

  • 在函数bmp_to_gif 中,我们首先检查选择的图像是否与要转换为 .gif 的格式(.bmp)相同,如果不是,则返回错误。
  • 否则将图像转换为 .gif
  • 要打开图像,我们使用 tkinter 中名为 FileDialog 的函数,它有助于从文件夹中打开图像
  • 从 tkinter 导入文件对话框作为 fd
  • GIF 到 BMP 的相同方法

下面是完整的实现:

Python3
from tkinter import *
from tkinter import filedialog as fd 
import os 
from PIL import Image 
from tkinter import messagebox 
    
root = Tk() 
    
# naming the GUI interface to image_conversion_APP 
root.title("Image_Conversion_App") 
    
# creating the Function which converts the jpg_to_png 
def gif_to_bmp():
    global im
      
    import_filename = fd.askopenfilename()
      
    if import_filename.endswith(".gif"):
        
        im = Image.open(import_filename)
        export_filename = fd.asksaveasfilename(defaultextension = ".bmp")
        im.save(export_filename)
        messagebox.showinfo("Success", "File converted to .png")
    else:
        messagebox.showerror("Fail!!", "Error Interrupted!!!! Check Again")
def bmp_to_gif():
    
    import_filename = fd.askopenfilename()
    if import_filename.endswith(".bmp"):
        
        im = Image.open(import_filename)
        export_filename = fd.asksaveasfilename(defaultextension = ".gif")
        im.save(export_filename)
        messagebox.showinfo("Success", "File converted to .gif")
    else:
        
        messagebox.showerror("Fail!!", "Error Interrupted!!!! Check Again")
  
button1 = Button(root, text = "GIF_to_BMP",
                 width = 20, height = 2, 
                 bg = "green", fg = "white", 
                 font = ("helvetica", 12, "bold"), 
                 command = gif_to_bmp) 
    
button1.place(x = 120, y = 120) 
    
button2 = Button(root, text = "BMP_to_GIF",
                 width = 20, height = 2, 
                 bg = "green", fg = "white", 
                 font = ("helvetica", 12, "bold"), 
                 command = bmp_to_gif) 
    
button2.place(x = 120, y = 220) 
root.geometry("500x500+400+200") 
root.mainloop()


输出: