20131007

From XPUB & Lens-Based wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

BIT

binary 二进制的,二元的 digit 数字
Binary digit bit is general tool of python to open files,count...
Bit shift:

Generating "Raw" Audio

import wave, struct

filename = "output.wav"
nframes=0
nchannels=1
sampwidth=2 # in bytes so 2=16bit, 1=8bit
framerate=44100
bufsize=2048

w = wave.open(filename, 'w')
w.setparams((nchannels, sampwidth, framerate, nframes, 'NONE', 'not compressed'))

max_amplitude = float(int((2 ** (sampwidth * 8)) / 2) - 1)

# split the samples into chunks (to reduce memory consumption and improve performance)
#for chunk in grouper(bufsize, samples):
#    frames = ''.join(''.join(struct.pack('h', int(max_amplitude * sample)) for sample in channels) for channels in chunk if channels is not None)
#    w.writeframesraw(frames)

freq = 440
# this means that FREQ times a second, we need to complete a cycle
# there are FRAMERATE samples per second
# so FRAMERATE / FREQ = CYCLE LENGTH
cycle = framerate / freq


data = ''
for i in range(10):
    for x in range(100):
        data += struct.pack('h', int(0.5 * max_amplitude))
    for x in range(100):
        data += struct.pack('h', int(-0.5 * max_amplitude))

w.writeframesraw(data)

w.close()

Generating "Raw" Images

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import struct

f = open("image.data", 'w')

data = ''
for x in range(10000):
    if x % 2:
        data += struct.pack('B', 255)
        data += struct.pack('B', 0)
        data += struct.pack('B', 0)
    else:
        data += struct.pack('B', 0)
        data += struct.pack('B', 255)
        data += struct.pack('B', 0)

f.write(data)
f.close()