op ,你确定你代码的颜色给对了嘛?
另外建议直接 with Image.open('back.png') as image:...,不要用 bk_img = cv2.imread("back.png") 再 Image.fromarray(bk_img)转换一次,你这转换过去又转换回来极容易出错 /出现颜色转换损失
最后,经测试 3 楼用的 AI 回答也还是正确的
'''
from PIL import Image, ImageDraw, ImageFont
import cv2
import numpy as np
def test():
image = Image.new('RGB', (100, 100), (255, 255, 255))
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
draw_text = 'why use Python'
draw.text((10, 10), draw_text, font=font, fill=(235, 77, 84))
output_file = 'test.png'
output_file_2 = 'test_2.png'
output_file_3 = 'test_3.png'
output_file_4 = 'test_4.png'
image.save(output_file)
cv2.imwrite(output_file_2, np.asarray(image)) # op 原始方法
cv2.imwrite(output_file_3, cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR)) # copliot 给的方法
cv2.imwrite(output_file_4, np.asarray(image)[:, :, ::-1]) # chatGPT 的方法
if __name__ == '__main__':
test()
'''
附图
反正除了 test_2.png ,其他三幅图的颜色都是对的,分毫不差