专栏首页奔跑的键盘侠Python——图片透明化处理

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),作者:我是奔跑的键盘侠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python——大数据词频统计

    今天来讲一个词频统计的方法,说高大上一点,就是大数据分析;看完以后,也不过数行代码而已。

    Ed_Frey
  • Python—微信好友云图怎么玩

    代码来源:https://www.cnblogs.com/taixiang/p/9124822.html

    Ed_Frey
  • Python-选择结构程序设计

    最近愈发觉得时间紧迫,毕业后参加工作以来,按键精灵断断续续学习了好多年,属于三天打鱼两天晒网这种类型,所以高不成低不就。so,最近必须加快步伐,赶赶进度,不能在...

    Ed_Frey
  • Java标准I/O流编程一览笔录

    Java标准I/O知识体系图: ? 1、I/O是什么? I/O 是Input/Output(输入、输出)的简称,输入流可以理解为向内存输入,输出流是从内存输出。...

    斯武丶风晴
  • Android OpenGL ES(七) - 生成抖音照片电影

    之前我们结合相机和视频,结合滤镜,做了实时的预览和录制。 这期,我们来试试利用OpenGL+MediaCodc,不进行预览直接录制成视频的情况。

    deep_sadness
  • 挑战程序竞赛系列(86):3.6极限情况(3)

    挑战程序竞赛系列(86):3.6极限情况(3) 传送门:AOJ 2201: Immortal Jewels 翻译参考至hankcs: http://www....

    用户1147447
  • Java实现文件复制常见方式

    0x01:FileInputStream/FileOutputStream字节流进行文件的复制

    java乐园
  • 高级聚类

    FuzzyKmeans 在对数据进行聚类时,最常用的方法应该是kmeans,但是kmean只能保证每一条待聚类的数据划分到一个类别,针对一条数据可以被划分到多个...

    xiangzhihong
  • RecyclerView 缓存策略

    ppjun
  • 凯捷咨询:2017年汽车在线研究报告—汽车消费者洞察

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 免责声明:本报...

    点滴科技资讯

扫码关注云+社区

领取腾讯云代金券