Exemple #1
0
class ImagePreviewDialog(PreviewDialog):
    def _beforePreview(self):
        self.dim = 256
        self.previewLabel = ''

    def _createPreview(self, frame):
        """ Should be implemented by subclasses to
        create the items preview.
        """
        from pyworkflow.gui.matplotlib_image import ImagePreview
        self.preview = ImagePreview(frame, self.dim, label=self.previewLabel)
        self.preview.grid(row=0, column=0)

    def _itemSelected(self, obj):

        index = obj.getIndex()
        filename = emlib.image.ImageHandler.fixXmippVolumeFileName(obj)
        if index:
            filename = "%03d@%s" % (index, filename)

        self.image = emlib.image.ImageHandler()._img

        try:
            self.image.readPreview(filename, self.dim)
            if filename.endswith('.psd'):
                self.image.convertPSD()
            self.Z = self.image.getData()
        except Exception as e:
            from pyworkflow.gui.matplotlib_image import getPngData
            self.Z = getPngData(pw.findResource('no-image.gif'))
            dialog.showError("Input particles",
                             "Error reading image <%s>" % filename, self)
        self.preview.updateData(self.Z)