只是平时记录使用,只有代码没有讲解,代码是复制就可用但是还有依赖的环境要先下载,视频切割成图片的几种方式和压缩图片以及多张图片拼接成一张

编程入门 行业动态 更新时间:2024-10-10 07:21:07

只是平时记录使用,只有代码没有讲解,代码是复制就可用但是还有依赖的环境要先下载,视频切割成<a href=https://www.elefans.com/category/jswz/34/1770705.html style=图片的几种方式和压缩图片以及多张图片拼接成一张"/>

只是平时记录使用,只有代码没有讲解,代码是复制就可用但是还有依赖的环境要先下载,视频切割成图片的几种方式和压缩图片以及多张图片拼接成一张

一,第一种

coding:utf-8

import imageio

注释的代码执行一次就好,以后都会默认下载完成

imageio.plugins.ffmpeg.download()

import skimage
from skimage import io
import numpy as np
import warnings
from os import listdir
from PIL import Image
import pngquant
import os

切图片

def get_swf_png(filename,url_id):
# 可以选择解码工具
vid = imageio.get_reader(filename, ‘ffmpeg’)
for num, im in enumerate(vid):
print(“正在剪切%s图片第%s张”%(url_id,num+1))
# image的类型是mageio.core.util.Image可用下面这一注释行转换为arrary
try:
with warnings.catch_warnings():
warnings.simplefilter(“ignore”)
image = skimage.img_as_float(im).astype(np.float64)
except:
image = skimage.img_as_ubyte(im)
try:
io.imsave(’…\swf\图片单片成品%s_%s.png’ % (url_id, num), image)
except:
pass

图片拼接

def Image_pj(url_id):
IMAGES_PATH = ‘…\swf\图片单片成品\’
ims = [Image.open(IMAGES_PATH +"%s_%s.png"%(url_id,i)) for i,fn in enumerate(listdir(IMAGES_PATH)) if fn.endswith(’.png’)]
width, height = ims[0].size
result = Image.new(ims[0].mode, (width, height * len(ims)))
for i, im in enumerate(ims):
print(“正在拼接%s第%s张图”%(url_id,(i+1)))
result.paste(im, box=(0, i * height))
os.remove(IMAGES_PATH + “%s_%s.png”%(url_id,i))
result.save("…\swf\整图%s.png"%url_id)
pngquant.config("…\pngquant\pngquant.exe", min_quality=1, max_quality=5,tmp_file=“quant.tmp.png”)
pngquant.quant_image("…\swf\整图%s.png"%url_id)

二,第二种
from os import listdir
from PIL import Image
import pngquant
import os, requests, re
import datetime
import os
from subprocess import Popen, PIPE, call

切图片

class SWFExtractor(object):
def init(self, package, outfile, rdpi=None, img_path=None):
self.tool_name = ‘…\swf\swf2img.exe’
self.package = package
self.r = rdpi
self.o = outfile
self.path = img_path
self.is_available = self.check_command(self.tool_name)
self.create_directory_if_not_exists(img_path)

def check_command(self, command):result = Truetry:p = Popen([command], stdout=PIPE, stderr=PIPE)out, err = pmunicate()except:result = Falsefinally:passreturn resultdef create_directory_if_not_exists(self, dir_name):  # 创建目录if not os.path.exists(dir_name):os.makedirs(dir_name)def extract_img(self):if not self.is_available:return Falseif not os.path.exists(self.package):print('未找到swf文件 ' + self.package)return Falseif self.r == None:self.r = 189outpath = os.path.join(self.path, self.o)command = [self.tool_name, self.package, '-r', str(self.r), '-o', outpath]p = Popen(command, stderr=PIPE, stdout=PIPE)out, err = pmunicate()if err:print('提取图片错误', err)return Truedef swf2img(self):if not self.extract_img():print('无法提取到图片')return Falseprint("提取图片完成")

更多推荐

只是平时记录使用,只有代码没有讲解,代码是复制就可用但是还有依赖的环境要先下载,视频切割成图片的几种方式和压缩图片以及多张图片拼接成一张

本文发布于:2024-02-14 12:50:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1763793.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图片   代码   几种   要先   多张

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!