【发布时间】:2016-03-06 03:32:16
【问题描述】:
我找到了以下两种创建图像的方法:
使用 PIL
from PIL import Image
import numpy as np
data = np.arange(1 * 2048).reshape(1, 2048)
print(data)
img = Image.fromarray(data, 'RGB')
img.save('my.png')
使用 Matplotlib
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
plt.imsave('filename.png', np.arange(1 * 2048).reshape(1, 2048))
它们都工作得很好。但是,我无法使用任何一种方法来遵循我的数据格式。
我的数组是一个二维数组,即32x1000。
每个元素都是一个介于 0 到 255 之间的数字。
我希望将每个元素绘制为一个像素,该像素具有作为以下方法返回的 RGB 颜色。
def get_rgb_by_int(rgb_int):
return rgb_int & 255, (rgb_int >> 8) & 255, (rgb_int >> 16) & 255
本质上,我想知道是否有一种方法可以使用相同的数组创建图像,其中每个元素现在都是另一个数组,代表 [r,g,b] 而不是 int。
编辑 调用之后:这就是我所拥有的:
print(result.shape)
>> (32, 1000)
print(result[0])
>> [(7, 0, 0)...(13, 0, 0)]
我希望生成的图像为 1000 宽和 32 高。第一个像素应该是 RGB 值(7, 0, 0),第一行的最后一个像素应该是(13, 0, 0)。 result 中的每个元素代表一行。
【问题讨论】:
标签: python matplotlib python-imaging-library