栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python设置图像透明度

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python设置图像透明度

jpg 图像读进来是 RGB 三阶张量,要设置透明度,可以手动加一层 alpha 通道,改成 RGBA 四阶,再用 PIL.Image 转成 png 保存。alpha 通道 [0, 255] 取值, 0 是完全透明,255 是不透明。

Example
  • 网上下的一张 jpg 图,想将白色背景设为透明,存成 png。
  • 先用取色器确定白色背景部分的 RGB 值,本例 R = G = B = 255。
import numpy as np
import cv2
from PIL import Image


img = cv2.cvtColor(cv2.imread("animal-horse.jpg"), cv2.COLOR_BGR2RGB)
print(img.shape, img.dtype)  # (1200, 1600, 3) uint8
# 找白色背景部分
mask = (255 == img[:, :, 0]) & (255 == img[:, :, 1]) & (255 == img[:, :, 2])
# 计算 alpha 通道:反选前景并设为 255 不透明
# 转成 uint8,与原 RGB 的类型一致
alpha = (1 - mask.astype(np.uint8)) * 255
# 升维、拼接:RGB -> RGBA
img_rgba = np.concatenate((img, alpha[:, :, np.newaxis]), 2)
# 转成 PIL.Image
img_rgba = Image.fromarray(img_rgba)
# 保存
img_rgba.save("animal-horse.png")
  • 效果(浏览器用 dark reader 将背景弄黑看透明效果,或下到本地用 power point 叠在另一幅图上面看)
References
  1. CSDN去除水印最新方法(创作中心 -> 博客设置 -> 图片水印)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号