为什么用 Python 保存的图片色彩不对呢

2022-12-05 14:34:21 +08:00
 usnake

draw.text((296,273),字符串,font=font,fill=(77,84,235)) 我这里用的颜色是 BGR(77,84,235)

cv2.imwrite(r"C:\Users\aaa\Desktop\img\img.png",img) 但是保存以后的颜色是 BGR(84,95,218)

是那里没写对吗?

2813 次点击
所在节点    Python
22 条回复
lookStupiToForce
2022-12-05 16:02:26 +08:00
代码换了,用下面的测试
'''
from PIL import Image, ImageDraw, ImageFont
import cv2
import numpy as np


def test():
image = Image.new('RGB', (150, 150), (255, 255, 255))
draw = ImageDraw.Draw(image)
font = ImageFont.truetype("calibri.ttf", size=25)
draw_text = 'why use\n\nPython'
draw.text((10, 10), draw_text, font=font, fill=(235, 84, 77))

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))
cv2.imwrite(output_file_3, cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR))
cv2.imwrite(output_file_4, np.asarray(image)[:, :, ::-1])


if __name__ == '__main__':
test()
'''
usnake
2022-12-05 16:31:19 +08:00
@lookStupiToForce 感谢您的耐心解答,后来我试过了,我的代码和您给的代码都没问题,有问题的是 photoshop ,我用 Photoshop 习惯取色是 RGB235 ,84 ,77 ,但是用 snipaste 桌面取色是 RGB255 ,68 ,68 ,可能是色彩空间有问题。现在问题解决了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/900227

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX