在Python中把.GIF转换成.BMP
有时需要附加图片,我们需要一个具有指定扩展名的图片文件。我们有不同扩展名的图像,需要用指定的扩展名进行转换,比如在这里我们将把扩展名为.bmp的图像转换为.gif,反之亦然。在这篇文章中,我们将把.GIF转换为.BMP和.BMP转换为.GIF。
另外,我们将创建代码的GUI界面,所以我们需要Tkinter库。Tkinter是一个与Tk GUI工具箱的Python绑定。它是Tk GUI工具包的标准Python接口,为GUI应用程序提供接口。
需要的模块:
- Tkinter : Tkinter是对Tk图形界面工具包的一个Python绑定。
- PIL:它是一个Python图像库,为Python解释器提供了图像编辑功能。
让我们一步一步地实现:
第1步:导入库。
from PIL import Image
第2步:JPG转GIF
To convert 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的函数,它有助于从文件夹中打开图片。
- from tkinter import filedialog as fd
- GIF转BMP的方法相同
以下是完整的实现方案:
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()
输出: