def getImageBytes(img): ba = QByteArray() buff = QBuffer(ba) buff.open(QIODevice.WriteOnly) img.save(buff, "png") img_bytes = ba.data() return img_bytes
def getCachedImage(self, project, request, key): m = hashlib.md5() paramMap = request.parameters() urlParam = "&".join( ["%s=%s" % (k, paramMap[k]) for k in paramMap.keys()]) m.update(urlParam.encode('utf8')) if not os.path.exists( os.path.join(self._tile_cache_dir, m.hexdigest() + ".png")): return QByteArray() img = QImage(m.hexdigest() + ".png") with open(os.path.join(self._tile_cache_dir, m.hexdigest() + ".png"), "rb") as f: statusOK = img.loadFromData(f.read()) if not statusOK: print( "Could not read or find the contents document. Error at line %d, column %d:\n%s" % (errorLine, errorColumn, errorStr)) return QByteArray() ba = QByteArray() buff = QBuffer(ba) buff.open(QIODevice.WriteOnly) img.save(buff, 'PNG') return ba
def writeTile(self, tile, image, fileFormat, quality): data = QByteArray() buff = QBuffer(data) image.save(buff, fileFormat, quality) self.cursor.execute('''INSERT INTO tiles(zoom_level, tile_column, tile_row, tile_data) VALUES (?, ?, ?, ?);''', (tile.z, tile.x, tile.y, sqlite3.Binary(buff.data()))) buff.close()
def __init__(self, handler: RequestHandler) -> None: super().__init__() self._handler = handler self._buffer = QBuffer() self._buffer.open(QIODevice.ReadWrite) self._numbytes = 0 self._finish = False
def to_png(image): """ Get as PNG """ imgbuf = QBuffer() imgbuf.open(QIODevice.ReadWrite) image.save(imgbuf, "PNG") # Return a QByteArray return imgbuf.data()
def getImage(self): """ Return the loaded image """ if self.isDefault: return None pix = self.orignalimage by = QByteArray() buf = QBuffer(by) buf.open(QIODevice.WriteOnly) pix.save(buf, "JPG") return by
def writeTile(self, tile, image): if tile.z != self._zoom: self._initZoomLayer(tile.z) data = QByteArray() buff = QBuffer(data) image.save(buff, 'PNG') mmap_name = '/vsimem/' + uuid4().hex gdal.FileFromMemBuffer(mmap_name, data.data()) gdal_dataset = gdal.Open(mmap_name) data = gdal_dataset.ReadRaster(0, 0, self.tile_width, self.tile_height) gdal_dataset = None gdal.Unlink(mmap_name) xoff = (tile.x - self._first_tile.x) * self.tile_width yoff = (tile.y - self._first_tile.y) * self.tile_height self._zoomDs.WriteRaster(xoff, yoff, self.tile_width, self.tile_height, data)
def send(self): buf = QBuffer() patchbytes = bytes('OPTIONS', 'UTF-8') verb = QByteArray(patchbytes) # Switch to get the appropriate function to process the request switch = { 'get': self.manager.get, 'options': lambda request: self.manager.sendCustomRequest(request, verb, buf), 'head': self.manager.head, 'put': self.manager.put } access_method = switch.get(self.method.lower()) reply_command = lambda: access_method(self.request) reply = Reply(reply_command, self.url) return reply
def __init__(self): QgsServerResponse.__init__(self) self._buffer = QBuffer() self._buffer.open(QIODevice.ReadWrite)
def make_buffer(obj): data = QByteArray(make_payload(obj)) buffer = QBuffer() buffer.setData(data) buffer.open(buffer.ReadOnly) return buffer