【问题标题】:pillow change picture color when save the picture保存图片时枕头改变图片颜色
【发布时间】:2021-12-12 11:35:47
【问题描述】:

我想给图片写文字。 imshow图片是黄色的,当我保存它时,它是蓝色的。我可以尝试更改 rgb,但我不能。这对我的侄子很重要。 (他的生日)我该如何解决?

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw 
import cv2
import numpy as np
import pandas as pd
df=pd.read_csv('atadavetlistesi.csv',encoding= 'UTF-8')
for i in df["isimler"] :

    picture = cv2.imread('atadogumgunu.png')
    pil_im = Image.fromarray(picture)
    draw = ImageDraw.Draw(pil_im)
    font = ImageFont.truetype("comici.ttf", 28, encoding="UTF-8")  
    draw.text((170, 240), i, (60,60,150), font=font)      
    # cv2_text_im = cv2.cvtColor(np.array(pil_im), cv2.COLOR_BGR2BGRA)
    # cv2_text_im = cv2.cvtColor(np.array(pil_im), cv2.COLOR_BGR2RGB)
    cv2_text_im = np.array(pil_im)
    cv2.imshow("Resim",cv2_text_im)
    saved_im=Image.fromarray(cv2_text_im)
    saved_im=saved_im.save(i+".jpg")

【问题讨论】:

标签: python pandas numpy python-imaging-library


【解决方案1】:

您在此处使用 OpenCV 从磁盘读取图像:

picture = cv2.imread('atadogumgunu.png')

这将使用 BGR 顺序。然后在此处使用 PIL 保存它:

saved_im=saved_im.save(i+".jpg")

它需要 RGB 顺序 - 所以它肯定不起作用。


最简单的方法是在开始时使用 PIL 加载图像并完全避免使用 OpenCV,因此只需使用:

pil_im = Image.open('atadogumgunu.png').convert('RGB')

【讨论】:

  • 非常感谢。我不能投票,但你是对的。我尝试,cv2_text_im = cv2.cvtColor(np.array(pil_im), cv2.COLOR_BGR2RGB) 并修复它。最好的办法,从现在开始,我将在打开图像时使用 PIL。
  • 很高兴它对您有用。即使您无法投票,您仍然可以通过单击计票附近的空心✅来接受答案。这也会给你积分,也可能让你投票。祝你的项目好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 2022-11-18
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多