diff --git a/scikits/image/io/_plugins/qt_plugin.py b/scikits/image/io/_plugins/qt_plugin.py index 6d931408..64379982 100644 --- a/scikits/image/io/_plugins/qt_plugin.py +++ b/scikits/image/io/_plugins/qt_plugin.py @@ -107,11 +107,17 @@ def imread_qt(filename, as_grey=False): else: img = img.reshape((qtimg.height(), pixelsPerLine)) img = img[:, :qtimg.width()] + # Strip alpha channel if needed + if bytesPerPixel == 4 and not qtimg.hasAlphaChannel(): + img = img[:, :, 0:3] if as_grey and bytesPerPixel > 1: # Stolen from fits_plugin - # these are the values that wikipedia says are typical - transform = numpy.array([ 0.30, 0.59, 0.11]) - return numpy.dot(img, transform) + if img.shape[2] == 4: + # these are the values that wikipedia says are typical + transform = np.array([ 0.30, 0.59, 0.11, 0]) + else: + transform = np.array([ 0.30, 0.59, 0.11]) + return np.dot(img, transform).astype('uint8') return img if sip.SIP_VERSION >= 0x040c00: