在Python中将声波编码为图像和文本?

时间:2012-11-21 22:49:07

标签: python image audio

所以我编写了以下代码,将图像输入转换为声波输出,它工作得很好。

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)和一串文本。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

PNG是一种结构化格式;转换为位图格式,以便从一个比特块中生成任意图像。但是,只需将文件扩展名从.wav切换到.bmp即可完成相同的操作;没有实际的转换是有用的或必要的...除了你可能想要在带有元数据的小标题上(声音的采样率等;图像的矩形尺寸)。对于“文本”,你甚至不需要它。