python手记(四):pillow(一)GIF处理,RGBA处理,Image实例属性总结

生活不易且无趣,一起找点乐子吧。欢迎评论,和文章无关的也可以。

 

 

 

GIF图片保存方法:

上次我们说到了gif动态图片怎样一张张将它分解,这次我们来说下怎样把几张单的gif组合成动态图片。

        im.save(out, save_all = True, append_images=[im1, im2......])

基本的方法就是这样。out是保存名,append_images是图片list,把想要组合的图片全部放进去就好。

注意这里的im是gif图片的image对象,而list内的图片也是image对象,但是是无要求的,不是gif格式也是可以的,有容乃大,海纳百川嘛。

还有一点,为了美观,在save之前,可以把list里面的图片size,改成和im一样的。(就是改成大小都一样的,不然就会以im的大小为准)

像这样(羊的图片是im,白血球的图片是im1,但是羊的图片大小比较小,所以白血球的图片只漏出来左上角一小部分):

                                               

他就以(0,0)只扣im大小的一块:

有时候我们想要控制它的每张图片切换的时间,但是save方法好像没有这个参数,我不知道别的方法有没有哈,如果有欢迎大牛们在下面指出哈。

这里有个第三方库imageio

    for i in image_list:
        frames.append(imageio.imread(i))
    imageio.mimsave(gif_name,frames,'GIF',duration = 0.5)

大家想去尝试的,可以去try一try。frames也是类似于append_images的list,不过就不是image对象了,所以前面用imread方法换成他自己的对象。duration就是时间参数,根据喜欢修改就好,化敌意,为己用。(这句话是啥意思?自己写的东西,后来看都看不懂了......)

 

 

RGBA图片处理:

前面我们有说,RGBA格式除了r,g,b三个bands之外多了个alpha,不透明度。也正是多了这么一个维度,我们就有的玩了。

为了说明,我这里找了两张RGBA格式的图片:

我们先看一种玩法,Image.blend(im1,im2,α)。

        def blend(im1,im2):#alpha 0-1 0位第一张图 1为第二张图 大小必须相同 混合
            Image.blend(im1,im2,0.5).save('blend.png')

参数im1和im2就不用多说了,就是两个image对象,我们来说说α,他是个0到1的数值,简单理解,他是im1和im2所占图片的重要程度,blend是混合的意思嘛。如果阿尔法为0,那im1占主导优势,就当是主场,执行的结果和im1没什么区别,如果为1,那就恰恰相反了。我这里取了0.5,取个中间,管他是捭阖之术,还是中庸之道。总之:

效果嘛,就不说了,自行欣赏.......告辞。

 

下一种,Image.alpha_composite(im1, im2),复合。这个理解起来相对简单,不捭阖,也不中庸,我们厚黑好了。haaaa,开玩笑,望文生义就好----复合。

就是把im2复合到im1上,仅此而已(注意顺序不能乱哦,是im2 over im1):

直接上图吧,这样好理解,如果你把顺序兑换,绿球球的黑背景就会完全覆盖住粉花花,那也就和没处理一样的。

 

 

最后总结一下Image对象的属性,方便查看。

im.filename() 望文生义(这个词在文章里出现的频率蛮高的,不是喜欢这个词,而是没有什么文采。),就是返回图片名字

im.format() 

im.mode()

im.size() 这三个前面有提,图片的格式,类型,大小

im.width()

im.height() 这两个看不懂的,麻烦去学小学英语

im.palette() palette(怕了他了)调色板,请忽略括号内容,这个属性一般没啥用,mode为P的图片才有值,一般都是None

im.info() 这是个数据字典,整张图片的详细信息,dict类型。如果你直接输出,emmmm,怎么说呢,有点像你玩爬虫,open完一个url不处理(或者是get),然后直接print(text)出来,几秒钟后开始问候计算机的祖宗,为什么那么慢,垃圾!

 

ok,鞠躬下台。我知道你们不会拿钱砸死我的。

 

 

后记:

括号内为再次查看文章添加内容,只为在你阅读时引起极大的舒适。感谢......

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值