我们从Python开源项目中,提取了以下25个代码示例,用于说明如何使用PyQt4.QtCore.QBuffer()。
def fromqimage(im): buffer = QBuffer() buffer.open(QIODevice.ReadWrite) # preserve alha channel with png # otherwise ppm is more friendly with Image.open if im.hasAlphaChannel(): im.save(buffer, 'png') else: im.save(buffer, 'ppm') b = BytesIO() try: b.write(buffer.data()) except TypeError: # workaround for Python 2 b.write(str(buffer.data())) buffer.close() b.seek(0) return Image.open(b)
def fromqimage(im): """ :param im: A PIL Image object, or a file name (given either as Python string or a PyQt string object) """ buffer = QBuffer() buffer.open(QIODevice.ReadWrite) # preserve alha channel with png # otherwise ppm is more friendly with Image.open if im.hasAlphaChannel(): im.save(buffer, 'png') else: im.save(buffer, 'ppm') b = BytesIO() try: b.write(buffer.data()) except TypeError: # workaround for Python 2 b.write(str(buffer.data())) buffer.close() b.seek(0) return Image.open(b)
def __init__(self, waveobj_list, *args, **kwargs): QtCore.QBuffer.__init__(self, *args, **kwargs) self.waveobj_list = waveobj_list self.single_data_list = [QtCore.QByteArray() for b in xrange(64)] self.multi_data = QtCore.QByteArray() self.multiplier = 6 self.ratio = 1. / 44100 * 128 * self.multiplier * 1000000 for wave_obj in waveobj_list: wave_obj.changed.connect(self.update) wave_obj.selected.connect(self.setCurrentWave) self.update(wave_obj) self.currentWave = 0 self.current_data = self.single_data_list[0] self.start = 0 self.delta = 256 self.full_mode = False self.open(QtCore.QIODevice.ReadOnly)
def fromqpixmap(im): return fromqimage(im) # buffer = QBuffer() # buffer.open(QIODevice.ReadWrite) # # im.save(buffer) # # What if png doesn't support some image features like animation? # im.save(buffer, 'ppm') # bytes_io = BytesIO() # bytes_io.write(buffer.data()) # buffer.close() # bytes_io.seek(0) # return Image.open(bytes_io)
def wxfinished(self): if self.wxreply.error() != QNetworkReply.NoError: #print "get radar error "+self.myname+":"+str(self.wxreply.error()) self.lastwx = 0 return #print "radar map received:"+self.myname+":"+time.ctime() self.wxmovie.stop() self.wxdata = QtCore.QByteArray(self.wxreply.readAll()) self.wxbuff = QtCore.QBuffer(self.wxdata) self.wxbuff.open(QtCore.QIODevice.ReadOnly) mov = QMovie(self.wxbuff, 'GIF') #print "radar map frame count:"+self.myname+":"+str(mov.frameCount()) if mov.frameCount() > 2: self.lastwx = time.time() else: # radar image retreval failed self.lastwx = 0 # retry in 5 seconds QtCore.QTimer.singleShot(5*1000, self.getwx) return self.wxmovie = mov if self.satellite: self.setMovie( self.wxmovie) else: self.wwx.setMovie( self.wxmovie) if self.parent().isVisible(): self.wxmovie.start()
def play_toggle(self, state): if not self.stream: return if not state: self.output.stop() self.pause_btn.setEnabled(False) self.pause_btn.setChecked(False) if self.output: try: self.output.deleteLater() except: pass return format = QtMultimedia.QAudioFormat() format.setChannels(self.stream.getnchannels()) format.setFrequency(self.stream.getframerate()) format.setSampleSize(self.stream.getsampwidth()*8) format.setCodec("audio/pcm") format.setByteOrder(QtMultimedia.QAudioFormat.LittleEndian) format.setSampleType(QtMultimedia.QAudioFormat.SignedInt) if self.output: try: self.output.deleteLater() except: pass self.output = QtMultimedia.QAudioOutput(format, self) self.output.stateChanged.connect(self.stop) buffer = QtCore.QBuffer(self) data = QtCore.QByteArray() self.stream.rewind() data.append(self.stream.readframes(float('inf'))) buffer.setData(data) buffer.open(QtCore.QIODevice.ReadOnly) buffer.seek(0) self.output.start(buffer) self.pause_btn.setEnabled(True)