所以我编写了以下代码,将图像输入转换为声波输出,它工作得很好。
import wave
try:
#change the file's name and format
image_file = 'image.png'
fin = open(image_file, "rb") #binary read
data = fin.read()
fin.close()
except IOError:
print("Image file %s not found" % imageFile)
raise SystemExit
#Give the name for wav file produced at run time corresponding to the input file
sound_output = wave.open('image.wav', 'w')
sound_output.setparams((2, 2, 44100, 10, 'NONE', 'not compressed'))
hex_str = bytes(data) #convert binary data to string of bytes
sound_output.writeframes(hex_str)
sound_output.close()
现在我想使用那个输出波形声音并将其转换回图像和文本(不是原始图像,而是它可以输出的任何图像)。我正在考虑上面使用的相同方法,它将波形声音文件作为输入并将其作为二进制数据读取。但后来我不知道如何将二进制数据保存为图像格式(jpg或png)和一串文本。有人可以帮忙吗?
答案 0 :(得分:0)
PNG是一种结构化格式;转换为位图格式,以便从一个比特块中生成任意图像。但是,只需将文件扩展名从.wav切换到.bmp即可完成相同的操作;没有实际的转换是有用的或必要的...除了你可能想要在带有元数据的小标题上(声音的采样率等;图像的矩形尺寸)。对于“文本”,你甚至不需要它。