Python——图片透明化处理

这是奔跑的键盘侠的第122篇文章

量化分析的篇章,前一篇已经做了完结。如果要细究一下,整体的流程框架都有了,要深入详细的搭建程序代码,可能还要再写个十多篇。倘若交易策略多种组合,就要更多篇幅了。

速速翻篇的原因之前也讲过了,接下来会进行新一轮的内容。大概的计划是:

  1. python方面,暂时不做深入层次的学习,可能也许大概,会偶尔分享一点自己原创、而且一直有在用的代码,绝对的干货,当然存量少的可怜。
  2. c++的学习分享,从零开始,其实去年就有学一丁点,但敲过的代码算上helloworld之类的,加起来也不会超过两百行。从网上翻了一下,c++这方面的公众号或者其他资源,其实不是很多。
  3. 按键精灵,其实蛮多粉丝是因为按键精灵加过来的,都是抱着学习进取的态度而来,只要不是沉迷游戏为了游戏而学习的,我都是挺乐意提供援助的。当然针对部分游戏入迷的小伙伴也进行了规劝,游戏嘛,娱乐而已,何必当真,有这精力干劲,还有什么事情做不好呢?依旧是,欢迎大家咨询,回复不一定及时,但闲暇时定会回复。

1

trans_PNG.py

# !/usr/bin/env python3.6
# -*- coding: utf-8 -*-
#__author__: Ed Frey
#date:  2018/8/8
from PIL import Image

def trans_PNG(initial_pic, new_pic):
    '''
    to get a transparent picture
    :param initial_pic: initial picture's path
    :param new_pic: the transparent picture's path
    :return:
    '''
img = Image.open(initial_pic)
    #将图片转换为四通道,而第四个通道是我们要修改的透明度,
    #值可以设置成0-255之间的值,透明度会不太一样,看脑洞有多大咯。
img = img.convert("RGBA")
    x, y = img.size
    for i in range(x):
        for j in range(y):
            #取四个通道的值,然后用切片取前三个不变,最后一个改为240
            color = img.getpixel((i, j))
            color = color[:-1] + (240,)
            img.putpixel((i, j), color)

    #将白色及近似白色的地方改成半透明
    datas = img.getdata()
    new_data = list()
    for item in datas:
        if item[0] > 220 and item[1] > 220 and item[2] > 220:
            new_data.append((255, 255, 255, 100))
        else:
            new_data.append(item)
    img.putdata(new_data)
    img.save(new_pic, "PNG")

if __name__ == '__main__':

    trans_PNG("test01.png", "test02.png")

2

测试结果

从百度首页截了一个百度的logo,取它为test01.png ,直接贴到excel里面,效果如下:

然后运行代码,把test01.png透明化处理,处理完就是test02.png,然后再贴到excel里面的效果,就是下面这个了:

整体的效果就是有颜色的地方透明了,白色的部分全部镂空了,换个场景来讲:比如我们要做一个电子印章,直接扫描一个图片,然后运行一下代码,就OK了,好玩吧!

当然,可不能拿来干什么坏事哦

原文发布于微信公众号 - 奔跑的键盘侠(runningkeyboardhero)

原文发表时间:2019-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券