def updateQImage(qimage, data, vmin = None, vmax = None, cmap = cmap_wjet): """ Modify a QImage in place from data array. Like :func:`createQImage`, but instead of creating a new QImage, this function updates an existing QImage. The size of the image must not change. :param qimage: (QImage) QImage object to be updated. :param data: (ndarray) Array containing the data values. :param vmin: (float) Minimum data value or None. :param vmax: (float) Maximum data value or None. :param cmap: (dict) Colormap for converting the data. :returns: (QImage) Image from given data. Example:: import numpy as np from qao.plot.image import createQImage, updateQImage data = np.random.rand(200, 200) qimage = createQImage(np.zeros_like(data)) updateQImage(qimage, data) qimage.save("random.png") """ data, vmin, vmax = __checkTypes(data, vmin, vmax) # write rgb data to existing QImage assert data.size == (qimage.height()*qimage.width()), "invalid size" rgbdata_cobject = qimage.bits().ascobject() cmapping_cobject(data, rgbdata_cobject, vmin, vmax, cmap["r_map"], cmap["g_map"], cmap["b_map"])
def createQImage(data, vmin = None, vmax = None, cmap = cmap_wjet): """ Create QImage from data array using a color-map. The minimum and maximum value for scaling the colormap is determined from `data` unless specified by `vmin` and `vmax`. The output will be a 24bit RGB QImage that can be used within graphical user applications or saved to files. :param data: (ndarray) Array containing the data values. :param vmin: (float) Minimum data value or None. :param vmax: (float) Maximum data value or None. :param cmap: (dict) Colormap for converting the data. :returns: (QImage) Image from given data. Example:: import numpy as np from qao.plot.image import createQImage, cmap_jet data = np.random.rand(200, 200) qimage = createQImage(data, cmap = cmap_jet) qimage.save("random.png") """ data, vmin, vmax = __checkTypes(data, vmin, vmax) # write rgb data to new QImage qimage = QtGui.QImage(data.shape[1], data.shape[0], QtGui.QImage.Format_RGB32) rgbdata_cobject = qimage.bits().ascobject() cmapping_cobject(data, rgbdata_cobject, vmin, vmax, cmap["r_map"], cmap["g_map"], cmap["b_map"]) return qimage