繁体   English   中英

如何使用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:图像索引超出范围”。 当我打印出x和y时,我发现只要它们中的任何一个达到5(即文件的宽度),但高度都不会发生,无论我如何使用它,无论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 [y,x]更改temp [x,y]并交换列和行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM