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)
return True
def iconFromFile(self, image, thumb):
def iconFromFile(self, image_path, thumb_path):
"""
Create a thumbnail icon from a given image.
``image``
``image_path``
The image file to create the icon from.
``thumb``
The filename to save the thumbnail to
``thumb_path``
The filename to save the thumbnail to.
"""
icon = build_icon(unicode(image))
pixmap = icon.pixmap(QtCore.QSize(88, 50))
ext = os.path.splitext(thumb)[1].lower()
pixmap.save(thumb, ext[1:])
return icon
ext = os.path.splitext(thumb_path)[1].lower()
reader = QtGui.QImageReader(image_path)
ratio = float(reader.size().width()) / float(reader.size().height())
reader.setScaledSize(QtCore.QSize(int(ratio * 88), 88))
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):
raise NotImplementedError(u'MediaManagerItem.loadList needs to be '