想要得到一张网络图片的内容透明背景白色的效果,并获得该图片的属于红橙黄绿青蓝紫的色系标签,以及是否是黑白图和彩图的标签,可以通过下面的方式进行。
第一步:获取网络图的图片内容及类型,并经过两次校验是否是彩色图然后进行图片颜色及通道判断,之后将图片颜色调整的数组转图片二进制流处理。
import requests
import io
import base64
import http.client
from PIL import Image, ImageStat
from io import BytesIO
response = requests.get("网络图片地址")
if len(response.content)>500:
#获取网络图片的内容的
image = Image.open(BytesIO(response.content))
#获取图片的类型L/LA/RBG/RBGA
Tmode = image.mode
#这里我应用的是图片均宽700 所以参数设置的是700,2
re = detect_color_image(image, 700, 2, True)
if re[0] =='grayscale' or re[0] == 'Black':
if colorsArr[1] == 0:
print('黑白图')
#新数组数据存入图片中
img.putdata(colorsArr[0])
#img.show()
#获取图片调整后的数组转二进制流
img_bytes = io.BytesIO()
#存入png格式
img.save(img_bytes, format="png")
#img.show()