def load_image(relative_path): path = "" try: if relative_path.startswith("sha1:"): sha1 = relative_path[5:] path = get_file_for_sha1(sha1) else: path = relative_path if relative_path in error_set: return None, (0, 0) if hasattr(path, "read"): im = QImage() im.loadFromData(path.read()) else: if not os.path.exists(path): return None, (0, 0) im = QImage(path) if im.format() != QImage.Format_ARGB32: im = im.convertToFormat(QImage.Format_ARGB32) bits = im.bits() try: pixels = bits.tobytes() except AttributeError: bits.setsize(im.byteCount()) pixels = bytes(bits) return pixels, (im.width(), im.height()) except Exception as e: print("[IMAGES] Error loading", repr(relative_path), repr(path), repr(e)) error_set.add(relative_path) return None, (0, 0)
def load_image(relative_path): path = "" try: if relative_path.startswith("sha1:"): sha1 = relative_path[5:] path = get_file_for_sha1(sha1) else: path = relative_path if relative_path in error_set: return None, (0, 0) if hasattr(path, "read"): im = QImage() im.loadFromData(path.read()) else: if not os.path.exists(path): return None, (0, 0) im = QImage(path) if im.format() != QImage.Format_ARGB32: im = im.convertToFormat(QImage.Format_ARGB32) bits = im.bits() try: pixels = bits.tobytes() except AttributeError: bits.setsize(im.byteCount()) pixels = bytes(bits) return pixels, (im.width(), im.height()) except Exception as e: print( "[IMAGES] Error loading", repr(relative_path), repr(path), repr(e) ) error_set.add(relative_path) return None, (0, 0)
def render(self, text, _, color): if self.font is None: return "", (0, 0) fm = QFontMetrics(self.font) rect = fm.boundingRect(text) im = QImage( rect.x() + rect.width(), rect.height(), QImage.Format_ARGB32_Premultiplied, ) im.fill(QColor(0, 0, 0, 0)) painter = QPainter() painter.begin(im) painter.setPen(QPen(QColor(*color))) painter.setFont(self.font) painter.drawText(QPoint(0 - rect.x(), 0 - rect.y()), text) painter.end() bits = im.bits() try: pixels = bits.tobytes() except AttributeError: bits.setsize(im.byteCount()) pixels = bytes(bits) return pixels, (rect.x() + rect.width(), rect.height())