![](/img/trans.png)
[英]Using python how do I convert an RGB array to an encoded image suitable for transmission via HTTP?
[英]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.