本文正在参加「金石计划 . 瓜分6万现金大奖」
如何经过python
完成gif
动图的倒放呢?其实很简单,代码如下:
# 导入处理图片的库
from PIL import Image, ImageSequence
# 读入gif文件
input_img = Image.open('input.gif')
# 获取gif的每一帧图片
gif_imgs = ImageSequence.Iterator(input_img)
# 存放gif的每一帧图片的文件
img_sequences = []
# 将每一帧图片集中保存到img_sequences,此时是在内存中
for index,img_file in enumerate(gif_imgs):
img_sequences.append(img_file.copy())
# 假如你想保存每一帧并导出成文件的话
# img_file.save('frame_'+str(index+1)+'.png')
# 将保存的文件的数组,次第反转
img_sequences.reverse()
# 保存倒放后的图片数组,组成一个文件
img_sequences[0].save('out.gif',save_all=True,append_images=img_sequences[1:])
gif
动图,其实便是多个图片依次播映。
我们稍微分析一下上面的代码。
Image.open('input.gif')
是读入一张图片。
假设是下面这张图片。
经过ImageSequence.Iterator(input_img)
能够获取这个动图所有的帧。
假如,调用保存每一帧img_file.save('frame_x.png')
看成果的话,终究是这样的。
然后,经过循环每一帧,把他们存储到数组img_sequences
中。接着调用img_sequences.reverse()
对保存的正序数组进行顺序倒置。也便是把[1,2,3,4]
变成[4,3,2,1]
。
终究,把每一帧组成一个文件。
终究输出如下成果:
是不是很丝滑。
小王说,太快看不细心,我想调慢速度能够吗?
img_sequences[0].save(……)
里边加一个距离参数duration = 1000
,也便是距离1
秒。
保存再看,效果很明显,1
秒蹦一张。
那么,不加时间它是多久的距离呢?
看保存的时分是img_sequences[0]
调用的save
方法,阐明是从原图中切了一个样本,样本带有原图的基因。那便是和原来的速度一个样。
由此也能够看出,必定前提下,一个100
秒的动图,和一个10
秒的动图,所占的空间是一样的,只是时间距离的描绘不一样。
换句话说,不是动图的时间越长,文件就越大,实践是和有多少帧,每一帧图片的巨细有关。
好了,朋友们能够去测验一下了。假如帮我们处理了问题,我很荣幸。
下面要说的,便是我的问题了。
我有什么问题?为什么这么写?
我们能够看我以前写的一篇文章《简单》,里边说到:
你自己的博客,本能够想怎样写就怎样写。可是,假如要想融入到一个评价系统的话,就不能说太多的私话。究竟,关于陌生人来说,我们都很忙。假如,非要说的话,就把它们放到后面……
其实,很小的一件事。我有点气愤了。我气愤,对其他人没有任何影响,只影响自己的健康。
网上看到一个gif
动态图,便是这个特技自行车。
由于常常写文,我就想收藏一下,作为资料。当再描绘一段炫酷的代码时,把这个图片放出来,能够起到引导情绪的作用。
可是,这个图有点夸大,很明显它是倒放的。过于夸大,就显得太假。由此,会影响读者,以为我刚刚说的也不靠谱。
假如能给它掰正就好了。
这很简单,我用PhotoShop
做过gif
动态图。其实便是多个图片排队播映罢了。
倒放,便是换一个方向。所以,我翻开百度,想搜一个在线东西。用东西把这个动图倒放并生成文件。
搜到许多网站,选了一个进入。
上传图片,设置一些参数,点击生成按钮,想看看效果。成果,网站提示我重视微信大众号。
这个操作很常规,人家需求知道是谁用了多少次。重视大众号,绑定手机号,成为用户。
现在能够点击生成了。嗯,还不错,再调一调参数,再看看效果,很满足。
现在终于满足了,点击下载,我要保存为文件。这时,网站弹出来一个购买界面,先购买198元会员,才能下载无水印版的文件。
点击退出,网站又弹出,假如花9.8元购买月会员,也能下载。真实不可,1.8元下载这一次也能够聊聊。还提示我:创作了那么久,狠心抛弃吗?
我有点懊悔了,懊悔没有直接关闭浏览器。
我以为,并不是我习惯了免费、白拿,而是遭到了戏耍。
为什么,为什么一开始不说,一开始不说不能免费运用。
用户加工完资料,肯定是要下载的。不下载,难道搬着电脑处处走吗?
当然,我知道这是套路。并且,这种套路太多了。裁剪证件照、PDF
转化个word
,乃至压缩个图片、修改个文件的创建日期,他们都这么搞。虽然有些功用,对程序员来说,便是几行代码的工作。
他们也需求活着!服务器、开发者、带宽,都需求资金保持。这种形式是“先尝后买”。俗话说:先尝后买,知道好歹。
人家没缺点。上面我也说了,我是自己气愤。
由于,我是这么一种人:
一个东西,我从头到尾用完了,它非常好地处理了我的问题。或许,虽然没有处理,可是人家做得很周到,只是我的需求太特殊(业内普遍没有类似处理方案)。那我会主动找他,给他酬劳,以示感谢。或许,他提前跟我说,你能够试试效果,可是终究用的话,是要收费的。
上面的状况,我都认可。唯一,啥也不说,一层重视,一层注册,一层验证码,一层会员,终究拿钱。我受不了。
因此啊,我决定做一件小事。做一件小事。一件小事。
我要开发一个东西类便民网站,把那些几行代码能做到的功用,全都怼上去。免费提供所有人运用,在制品交给的页面,增加收款码。
我相信,我这类人仍是存在的。借此机会也验证一下。
假如收着钱,算是赚了。收不到钱,算是出资个了教训。