将 .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()
输出: