Ejemplo n.º 1
0
 def trim_cover(self):
     book_id = self.data.get('id')
     if not book_id:
         return
     from calibre.utils.img import image_from_x, remove_borders_from_image
     img = image_from_x(self.pixmap)
     nimg = remove_borders_from_image(img)
     if nimg is not img:
         self.last_trim_id = book_id
         self.last_trim_pixmap = self.pixmap
         self.update_cover(QPixmap.fromImage(nimg))
Ejemplo n.º 2
0
 def manual_trim_cover(self):
     book_id = self.data.get('id')
     if not book_id:
         return
     from calibre.gui2.dialogs.trim_image import TrimImage
     from calibre.utils.img import image_to_data
     cdata = image_to_data(image_from_x(self.pixmap), fmt='PNG', png_compression_level=1)
     d = TrimImage(cdata, parent=self)
     if d.exec() == QDialog.DialogCode.Accepted and d.image_data is not None:
         self.last_trim_id = book_id
         self.last_trim_pixmap = self.pixmap
         self.update_cover(cdata=d.image_data)
Ejemplo n.º 3
0
 def update_cover(self, pmap=None, cdata=None):
     if pmap is None:
         pmap = QPixmap()
         pmap.loadFromData(cdata)
     if pmap.isNull():
         return
     if pmap.hasAlphaChannel():
         pmap = QPixmap.fromImage(blend_image(image_from_x(pmap)))
     self.pixmap = pmap
     self.do_layout()
     self.update()
     self.update_tooltip(getattr(self.parent(), 'current_path', ''))
     if not config['disable_animations']:
         self.animation.start()
     id_ = self.data.get('id', None)
     if id_ is not None:
         self.cover_changed.emit(id_, cdata or pixmap_to_data(pmap))
Ejemplo n.º 4
0
 def update_cover(self, pmap=None, cdata=None):
     if pmap is None:
         pmap = QPixmap()
         pmap.loadFromData(cdata)
     if pmap.isNull():
         return
     if pmap.hasAlphaChannel():
         pmap = QPixmap.fromImage(blend_image(image_from_x(pmap)))
     self.pixmap = pmap
     self.do_layout()
     self.update()
     self.update_tooltip(getattr(self.parent(), 'current_path', ''))
     if not config['disable_animations']:
         self.animation.start()
     id_ = self.data.get('id', None)
     if id_ is not None:
         self.cover_changed.emit(id_, cdata or pixmap_to_data(pmap))