如何使用 python 将 CSV 文件转换为 RGB 图像
How do I convert a CSV file to an RGB image using python
我正在尝试将 csv 文件转换为 RGB 文件,如下所示:
from PIL import Image, ImageDraw
from numpy import genfromtxt
g = open('myFile.csv','r')
temp = genfromtxt(g, delimiter = ',')
im = Image.fromarray(temp).convert('RGB')
pix = im.load()
rows, cols = im.size
for x in range(cols):
for y in range(rows):
print str(x) + " " + str(y)
pix[x,y] = (int(temp[x,y] // 256 // 256 % 256),int(temp[x,y] // 256 % 256),int(temp[x,y] % 256))
im.save(g.name[0:-4] + '.jpeg')
问题是倒数第二行给了我 "IndexError: image index out of range"。当我打印出 x 和 y 时,我发现只要它们中的任何一个达到我文件的宽度而不是高度,就会发生这种情况,无论我如何使用它,无论 x 还是 y 达到 5,它都会抛出错误这就是我没有弄明白的。也欢迎任何更好的实现。
如果有人想要工作算法,这里是:
from PIL import Image, ImageDraw
from numpy import genfromtxt
g = open('myFile.csv','r')
temp = genfromtxt(g, delimiter = ',')
im = Image.fromarray(temp).convert('RGB')
pix = im.load()
rows, cols = im.size
for x in range(cols):
for y in range(rows):
print str(x) + " " + str(y)
pix[x,y] = (int(temp[y,x] // 256 // 256 % 256),int(temp[y,x] // 256 % 256),int(temp[y,x] % 256))
im.save(g.name[0:-4] + '.jpeg')
这只是将 temp[x,y] 更改为 temp[y,x] 并交换列和行的问题。
我正在尝试将 csv 文件转换为 RGB 文件,如下所示:
from PIL import Image, ImageDraw
from numpy import genfromtxt
g = open('myFile.csv','r')
temp = genfromtxt(g, delimiter = ',')
im = Image.fromarray(temp).convert('RGB')
pix = im.load()
rows, cols = im.size
for x in range(cols):
for y in range(rows):
print str(x) + " " + str(y)
pix[x,y] = (int(temp[x,y] // 256 // 256 % 256),int(temp[x,y] // 256 % 256),int(temp[x,y] % 256))
im.save(g.name[0:-4] + '.jpeg')
问题是倒数第二行给了我 "IndexError: image index out of range"。当我打印出 x 和 y 时,我发现只要它们中的任何一个达到我文件的宽度而不是高度,就会发生这种情况,无论我如何使用它,无论 x 还是 y 达到 5,它都会抛出错误这就是我没有弄明白的。也欢迎任何更好的实现。
如果有人想要工作算法,这里是:
from PIL import Image, ImageDraw
from numpy import genfromtxt
g = open('myFile.csv','r')
temp = genfromtxt(g, delimiter = ',')
im = Image.fromarray(temp).convert('RGB')
pix = im.load()
rows, cols = im.size
for x in range(cols):
for y in range(rows):
print str(x) + " " + str(y)
pix[x,y] = (int(temp[y,x] // 256 // 256 % 256),int(temp[y,x] // 256 % 256),int(temp[y,x] % 256))
im.save(g.name[0:-4] + '.jpeg')
这只是将 temp[x,y] 更改为 temp[y,x] 并交换列和行的问题。