Python jpg快速转png并调整大小方式
作者:咲奈
这篇文章主要介绍了Python实现jpg快速转png并调整大小方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Python jpg转png并调整大小
很简单的小程序,可以直接将本文件夹下所有 .jpg 转为 .png 格式,并自定义大小。
依赖
需要安装 pillow 库:
pip install pillow
代码
# -*- coding:utf-8 -*-
# file name: jpg2png.py
import os
from PIL import Image
list = os.listdir()
for i in list:
if i != 'jpg2png.py':
print(i)
Image.open(i).convert('RGBA').resize((512, 512)).save(i[:i.find('.')] + '.png')注意本文件名,还有调整大小需要括号起来。
缺点
- 不能去白底
python把jpg图片批量转化为png图片
# python图片格式jpg转换为png(批量处理,尺寸不变)
import os
import PIL.Image as Image
def changeJpgToPng(srcPath, dstPath):
# 修改图像大小
image = Image.open(srcPath)
# 将jpg转换为png
png_name = str(dstPath)[0:-len('.jpg')] + '.png'
# image.save(png_name)
# print(png_name)
# image = image.convert('RGBA')
image = image.convert('RGB')
image.save(png_name)
pass
if __name__ == '__main__':
listPath = 'D:/BYLW666/deeplabv3-plus-pytorch-main/VOCdevkit/VOC2007/jpg/'#jpg图片
srcPath = 'D:/BYLW666/deeplabv3-plus-pytorch-main/VOCdevkit/VOC2007/src/'#jpg图片
dstPath = 'D:/BYLW666/deeplabv3-plus-pytorch-main/VOCdevkit/VOC2007/png/'#png图片
print("开始转换...")
filename_list = os.listdir(listPath)
for d in filename_list:
if d.count('.jpg') > 0:
changeJpgToPng(srcPath + d, dstPath + d)
pass
print("完成了...")
二、视频转图像或图像转视频
import cv2
import os
def video2image():
cap = cv2.VideoCapture("video/01.mp4")
count = 1
while True:
success, frame = cap.read()
if success == False:
break
cv2.imwrite("images/%d.jpg" % count, frame)
count += 1
def image2video():
# 得到图像路径
files = os.listdir("images/")
# 对图像排序
files.sort(key=lambda x: int(x.split(".")[0]))
# 获取图像宽高
h, w, _ = cv2.imread("images/" + files[0]).shape
# 设置帧数
fps = 30
vid = []
'''
设置要保存的格式
mp4:
mp4v
avi:
xvid
i420
'''
# 保存视频路径和名称
# save_path = "video/video.mp4" # 保存视频路径和名称 MP4格式
save_path = "video/video.avi" # 保存视频路径和名称 av格式
# 准备写入视频
vid = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))
# vid = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'xvid'), fps, (w, h))
# vid = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'i420'), fps, (w, h))
# 写入
for file in files:
img = cv2.imread("images/" + file)
vid.write(img)
if __name__ == '__main__':
print("start...")
video2image()
#image2video()
print("OK!")
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
