我有檔案有一些像這樣的值“01100000,10101000,01101000,01110000,10101100,01110000,01101000,10101”這是JPEG影像的值(120 * 160需要將此檔案轉換為Im)嘗試使用此代碼,但出現此錯誤!
pixel[x,y] = diff(i2) #創建黑色影像。做什么?型別錯誤:顏色必須是整數或元組
with open("C://Users//kk//Desktop//rbb8bin.txt") as file:
vdiv = [line.strip() for line in file]
print(vdiv)
def diff(inp):
if inp == '1':
return (0,0,0)
if inp == '0':
return (255,255,255)
else:
pass
img = Image.new( 'RGB', (8,len(vdiv)), "white")
pixels = img.load()
for x in range(img.size[0]):
for y in range(img.size[1]):
for i in vdiv:
for i2 in i:
pixels[x,y] = diff(i2) #Creates a black image. What do?
img.show()
uj5u.com熱心網友回復:
您確實需要區分 ASCII 文本和二進制檔案。您的檔案以一種非常丑陋、低效的方式存盤。這是將其恢復為 JPEG 的一種(同樣丑陋的)方法:
#!/usr/bin/env python3
import csv
# Read text file as CSV into list
with open('data') as f:
reader = csv.reader(f)
# Discard height and width, i.e. first two values
data = list(reader)[0][2:]
# Open binary output file, convert each string to bytes and write
with open('image.jpg', 'wb') as out:
for v in data:
b = int(v,2).to_bytes(1,byteorder='big')
out.write(b)

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/334946.html
下一篇:Kettle的安裝及簡單使用
