def getImageName(self, image): name = self.imageToName.get(image) if name is not None: return name data = image.getImageData() hasExcessData = data.width * data.depth / 8 < data.bytesPerLine imageDict = self.storedImages.get((data.width, data.height), {}) for name, imgData in imageDict.items(): if self.imageDataMatches(data, imgData, hasExcessData): baseName = os.path.basename(name) self.imageToName[image] = baseName return baseName for iconId, iconName in self.systemIcons: iconImage = Display.getCurrent().getSystemImage(iconId) if iconImage and self.imageDataMatches(data, iconImage.getImageData(), hasExcessData): return "system_" + iconName for img, imgName in self.renderedImages: if self.imageDataMatches(data, img.getImageData(), hasExcessData): return "rendered_" + imgName # Last chance, see if the image has been greyed out for name, imgData in imageDict.items(): greyedImg = Image(Display.getCurrent(), Image(Display.getCurrent(), imgData), SWT.IMAGE_GRAY) greyedData = greyedImg.getImageData() hasGreyedExcessData = greyedData.width * greyedData.depth / 8 < greyedData.bytesPerLine if self.imageDataMatches(data, greyedData, hasGreyedExcessData): greyedName = os.path.basename(name) + "', 'greyed out" self.imageToName[image] = greyedName return greyedName
def writeScreenshot(self, shell): display = shell.getDisplay() gc = GC(display); image = Image(display, shell.getBounds()) gc.copyArea(image, shell.getBounds().x, shell.getBounds().y) gc.dispose() imageLoader = ImageLoader() imageLoader.data = [ image.getImageData() ] self.screenshotNumber += 1 screenshotDir = os.path.join(os.getenv("TEXTTEST_LOG_DIR", os.getcwd()), "screenshots") if not os.path.isdir(screenshotDir): os.makedirs(screenshotDir) fileName = self.getScreenshotFileName(screenshotDir) while os.path.isfile(fileName): self.screenshotNumber += 1 fileName = self.getScreenshotFileName(screenshotDir) imageLoader.save(fileName, SWT.IMAGE_PNG)
def getImageFromName(self, name): if name not in self.imageMap: try: image = Image( Display.getCurrent(), os.path.join(self.resourcePath, name + self.extension)) except: image = None self.imageMap[name] = image return self.imageMap[name]