Improved thumbnail creation speed in the media manager

bzr-revno: 1618
This commit is contained in:
Andreas Preikschat 2011-06-06 20:09:56 +02:00
commit 5d426b5cca
1 changed files with 14 additions and 9 deletions

View File

@ -391,21 +391,26 @@ class MediaManagerItem(QtGui.QWidget):
self.iconFromFile(image, thumb) self.iconFromFile(image, thumb)
return True return True
def iconFromFile(self, image, thumb): def iconFromFile(self, image_path, thumb_path):
""" """
Create a thumbnail icon from a given image. Create a thumbnail icon from a given image.
``image`` ``image_path``
The image file to create the icon from. The image file to create the icon from.
``thumb`` ``thumb_path``
The filename to save the thumbnail to The filename to save the thumbnail to.
""" """
icon = build_icon(unicode(image)) ext = os.path.splitext(thumb_path)[1].lower()
pixmap = icon.pixmap(QtCore.QSize(88, 50)) reader = QtGui.QImageReader(image_path)
ext = os.path.splitext(thumb)[1].lower() ratio = float(reader.size().width()) / float(reader.size().height())
pixmap.save(thumb, ext[1:]) reader.setScaledSize(QtCore.QSize(int(ratio * 88), 88))
return icon thumb = reader.read()
thumb.save(thumb_path, ext[1:])
if os.path.exists(thumb_path):
return build_icon(unicode(thumb_path))
# Fallback for files with animation support.
return build_icon(unicode(image_path))
def loadList(self, list): def loadList(self, list):
raise NotImplementedError(u'MediaManagerItem.loadList needs to be ' raise NotImplementedError(u'MediaManagerItem.loadList needs to be '