Home · All Classes · Modules  · QSS HELP  · QSS 案例 · VER007 HOME

QImageReader Class Reference
[QtGui module]

该QImageReader类提供了从文件或其它设备读取图像的格式无关的接口。More...

Types

Methods

Static Methods


Detailed Description

该QImageReader类提供了从文件或其它设备读取图像的格式无关的接口。

对图像进行读取的最常见的方式是通过QImageQPixmap的构造函数,或致电QImage.load()和QPixmap.load( ) 。 QImageReader是一家专业类阅读图像时它给你更多的控制。例如,你可以通过调用读取图像到一个特定的大小setScaledSize( ) ,你可以选择一个剪辑矩形,有效地只加载部分的图像,通过调用setClipRect( ) 。根据不同的图像格式的支持基础上的,这样可以节省内存,加快加载图像。

要读取的图像,你通过构建一个QImageReader对象开始。通过其中一个文件名或设备指针,图像格式QImageReader的构造函数。然后,您可以设置多个选项,如剪辑矩形(通过调用setClipRect( ) )和缩放大小(通过调用setScaledSize())。canRead()返回的图像,如果QImageReader可以读取图像(即,被支持的图像格式和设备开放阅读) 。通话read()来读取该图像。

如果在读取图像时出现任何错误,read( )将返回一个nullQImage。然后,您可以调用error()找到所发生的错误的类型,或者errorString()来得到一个什么地方出了错人类可读的描述。

Call supportedImageFormats()用于该QImageReader可以阅读格式的列表。 QImageReader支持所有内置的图像格式,除了支持读取任何图像格式的插件。

QImageReader自动检测默认的图像格式,通过查看所提供(可选)格式字符串,文件名后缀,和数据流内容。您可以启用或禁用此功能,通过调用setAutoDetectImageFormat( ) 。


Type Documentation

QImageReader.ImageReaderError

这个枚举变量描述了不同类型的错误与读取图像时可能发生的QImageReader

Constant Value Description
QImageReader.FileNotFoundError 1 QImageReader被使用的文件名,而不是文件被发现使用该名称。这也可能发生,如果文件名不包含扩展名,不支持的Qt用正确的扩展名的文件。
QImageReader.DeviceError 2 QImageReader读取图像时遇到设备错误。您可以谘询您的特定设备上出了什么问题的更多细节。
QImageReader.UnsupportedFormatError 3 Qt不支持所请求的图像的格式。
QImageReader.InvalidDataError 4 图像数据是无效的,并QImageReader无法从中读取图像。如果图像文件被损坏可能发生。
QImageReader.UnknownError 0 发生未知错误。如果在调用后得到这个值read( ) ,它是最有可能的一个错误引起的QImageReader

Method Documentation

QImageReader.__init__ (self)

构造一个空QImageReader对象。在阅读的图像,调用setDevice()或setFileName( ) 。

QImageReader.__init__ (self, QIODevice device, QByteArray format = QByteArray())

构造一个QImageReader与设备对象device和图像格式format

QImageReader.__init__ (self, QString fileName, QByteArray format = QByteArray())

构造一个QImageReader用文件名对象fileName和图像格式format

See also setFileName( ) 。

bool QImageReader.autoDetectImageFormat (self)

返回True如果图像格式自动检测是对这个形象的读者能,否则返回False 。默认情况下,自动检测被启用。

See also setAutoDetectImageFormat( ) 。

QColor QImageReader.backgroundColor (self)

返回的阅读一个图像时使用的背景颜色。如果图像格式不支持设置背景色无效的颜色恢复。

这个函数是Qt 4.1中引入。

See also setBackgroundColor()和read( ) 。

bool QImageReader.canRead (self)

返回True如果图像可以读取的设备(例如,支持的图像格式,并且该设备似乎包含有效的数据),否则返回False 。

的CanRead ()是一个轻量级函数只能执行快速测试以查看该图像数据是有效的。read( )的CanRead后仍可能返回False ( )返回True ,如果图像数据被破坏。

对于支持动画影像时,所有帧都被读取,的CanRead ( )返回False 。

See also read()和supportedImageFormats( ) 。

QRect QImageReader.clipRect (self)

返回图像的剪辑矩形(也被称为ROI ,或感兴趣区域) 。如果没有剪辑矩形已定,一个无效的QRect返回。

See also setClipRect( ) 。

int QImageReader.currentImageNumber (self)

对于支持动画图像格式,该函数返回当前帧的序列号。如果图像格式不支持动画,则返回0 。

该函数返回-1,如果发生了错误。

See also supportsAnimation( )QImageIOHandler.currentImageNumber()和canRead( ) 。

QRect QImageReader.currentImageRect (self)

对于支持动画图像格式,该函数返回的矩形为当前帧。否则,将返回一个空矩形。

See also supportsAnimation()和QImageIOHandler.currentImageRect( ) 。

bool QImageReader.decideFormatFromContent (self)

返回的图像读取器是否应该决定哪些插件只使用基于数据流的内容,而不是文件扩展名。

See also setDecideFormatFromContent( ) 。

QIODevice QImageReader.device (self)

返回当前分配给设备QImageReader,或者0,如果没有设备已经被分配。

See also setDevice( ) 。

ImageReaderError QImageReader.error (self)

返回上次发生错误的类型。

See also ImageReaderErrorerrorString( ) 。

QString QImageReader.errorString (self)

返回上次发生错误的可读描述。

See also error( ) 。

QString QImageReader.fileName (self)

如果当前分配装置是QFile,或者如果setFileName( )被调用,此函数返回文件的名称QImageReader读取。否则(即,如果没有设备已被分配或设备不是QFile) ,空QString返回。

See also setFileName()和setDevice( ) 。

QByteArray QImageReader.format (self)

返回格式QImageReader用来读取图像。

可以分配一个设备向读者以确定该设备的格式之后,调用此函数。例如:

 QImageReader reader("image.png");
 // reader.format() == "png"

如果读者不能从设备读取任何图像(例如,没有图像出现,或图像已经被读取) ,或者如果格式是不支持的,这个函数返回一个空QByteArray中( ) 。

See also setFormat()和supportedImageFormats( ) 。

int QImageReader.imageCount (self)

对于支持动画图像格式,该函数返回的动画图像的总数。如果格式不支持动画,则返回0 。

该函数返回-1,如果发生了错误。

See also supportsAnimation( )QImageIOHandler.imageCount()和canRead( ) 。

QByteArray QImageReader.imageFormat (QString fileName)

返回的图像的格式,而无需实际读出图像的内容。该格式描述的图像格式QImageReader.read( )返回,而不是实际的图像的格式。

如果图像格式不支持此功能,这个函数返回一个无效的格式。

此功能被引入Qt的4.5 。

See also QImageIOHandler.ImageOptionQImageIOHandler.option()和QImageIOHandler.supportsOption( ) 。

QByteArray QImageReader.imageFormat (QIODevice device)

如果支持的话,这个函数返回文件的图像格式fileName。否则,返回一个空字符串。

QImage.Format QImageReader.imageFormat (self)

如果支持,则该函数返回设备的图像格式device。否则,返回一个空字符串。

See also QImageReader.autoDetectImageFormat( ) 。

bool QImageReader.jumpToImage (self, int imageNumber)

对于支持动画图像格式,该函数将跳到其序列号是图像imageNumber,返回True,如果成功则返回False相应的图像不能被发现。

到下一次调用read( )将尝试读取这个形象。

See also jumpToNextImage()和QImageIOHandler.jumpToImage( ) 。

bool QImageReader.jumpToNextImage (self)

对于支持动画图像格式,该功能的步骤在当前图像,返回True,如果成功或假,如果有在动画没有下面的图像。

默认实现调用read( ),则丢弃所得到的图像,但图像处理程序可能必须执行这一操作的更有效的方法。

See also jumpToImage()和QImageIOHandler.jumpToNextImage( ) 。

int QImageReader.loopCount (self)

对于支持动画图像格式,该函数返回的时候动画应该循环的次数。如果这个函数返回-1 ,它可以意味着动画应该永远循环下去,或者发生了错误。如果发生错误,则canRead( )将返回False 。

See also supportsAnimation( )QImageIOHandler.loopCount()和canRead( ) 。

int QImageReader.nextImageDelay (self)

对于支持动画图像格式,该函数返回的毫秒数要等到显示在动画的下一帧。如果图像格式不支持动画,则返回0 。

该函数返回-1,如果发生了错误。

See also supportsAnimation( )QImageIOHandler.nextImageDelay()和canRead( ) 。

int QImageReader.quality (self)

返回的图像的质量级别。

这个函数中引入了Qt 4.2中。

See also setQuality( ) 。

QImage QImageReader.read (self)

读取从设备中的图像。成功时,所读取的图像传回,否则空QImage返回。然后,您可以调用error()找到所发生的错误的类型,或者errorString( )来获得错误的可读描述。

对于支持动画,调用读取的图像格式( )多次将返回下一帧。当所有的帧都被读取,一个空的图像将被退回。

See also canRead( )supportedImageFormats( )supportsAnimation()和QMovie

bool QImageReader.read (self, QImage image)

这是一个重载函数。

读取从设备中的图像进image,它必须指向一个QImage。成功时返回TRUE ,否则返回False 。

If image具有相同的格式和大小,因为这是将要读取的图像数据,此功能可能并不需要阅读之前,分配一个新的形象。正因为如此,它可以比其它快read()重载,它总是构造一个新的形象;读取多个图像具有相同的格式和大小时尤其如此。

 QImage icon(64, 64, QImage.Format_RGB32);
 QImageReader reader("icon_64x64.bmp");
 if (reader.read(&icon)) {
     // Display icon
 }

对于支持动画,调用图像格式read( )多次将返回下一帧。当所有的帧都被读取,一个空的图像将被退回。

See also canRead( )supportedImageFormats( )supportsAnimation()和QMovie

QRect QImageReader.scaledClipRect (self)

返回的图像的缩放的夹子正确。

See also setScaledClipRect( ) 。

QSize QImageReader.scaledSize (self)

返回的图像的缩放大小。

See also setScaledSize( ) 。

QImageReader.setAutoDetectImageFormat (self, bool enabled)

If enabled诚然,图像格式自动检测被启用,否则,它被禁用。默认情况下,自动检测被启用。

QImageReader使用广泛的方法来检测图像格式:首先,如果你传递一个文件名QImageReader,它会尝试检测文件的扩展名,如果给定的文件名不指向现有的文件,通过追加支持默认扩展到给定的文件名,一次一个。然后使用下面的方法来检测图像格式:

通过禁用图像格式自动检测,QImageReader只有查询的基础上,格式字符串(例如,没有文件扩展名进行测试)的插件和内置的处理程序。

See also autoDetectImageFormat( )QImageIOHandler.canRead()和QImageIOPlugin.capabilities( ) 。

QImageReader.setBackgroundColor (self, QColor color)

设置背景色为color。支持此操作的图像格式,预计到后台初始化color前阅读一个图像。

这个函数是Qt 4.1中引入。

See also backgroundColor()和read( ) 。

QImageReader.setClipRect (self, QRect rect)

设定影像剪辑矩形(也称为投资回报率,或感兴趣区域) ,以rect。的坐标rect是相对于未转化的图像的大小,所返回的size( ) 。

See also clipRect( )setScaledSize()和setScaledClipRect( ) 。

QImageReader.setDecideFormatFromContent (self, bool ignored)

If ignored设置为True ,则图像阅读器将忽略指定的格式或文件扩展名,并决定哪些插件只是基于在数据流中的内容使用。

设置这个标志意味着所有图像插件被加载。每个插件将读取的图像数据的第一个字节,并决定是否插件兼容与否。

这也将禁用自动检测的图像格式。

See also decideFormatFromContent( ) 。

QImageReader.setDevice (self, QIODevice device)

Sets QImageReader的设备device。如果设备已经被设置,旧设备是从除去QImageReader而在其他情况保持不变。

如果该设备尚未打开,QImageReader将尝试在打开设备QIODevice.ReadOnly模式通过调用open ( ) 。注意,这并不对某些设备,如工作QProcessQTcpSocketQUdpSocket,其中更多的逻辑需要打开设备。

See also device()和setFileName( ) 。

QImageReader.setFileName (self, QString fileName)

设置的文件名QImageReaderfileName。在内部,QImageReader将创建一个QFile对象,并在打开它QIODevice.ReadOnly模式,阅读图像时使用这个。

If fileName不包括文件扩展名(例如, 。 PNG或。 BMP ) ,QImageReader将循环遍历所有支持的扩展,直到找到一个匹配的文件。

See also fileName( )setDevice()和supportedImageFormats( ) 。

QImageReader.setFormat (self, QByteArray format)

设置格式QImageReader将使用阅读图像时,以formatformat是不区分大小写的文本字符串。例如:

 QImageReader reader;
 reader.setFormat("png"); // same as reader.setFormat("PNG");

您可以致电supportedImageFormats( )对于格式的完整列表QImageReader支持。

See also format( ) 。

QImageReader.setQuality (self, int quality)

这是一种图像格式的具体功能,用于设置图像的质量水平来quality。对于不支持设置质量的图像格式,该值将被忽略。

的取值范围quality取决于图像格式。例如, “JPEG”格式支持的质量范围从0(低品质,高压缩)到100 (高品质,低压缩率) 。

这个函数中引入了Qt 4.2中。

See also quality( ) 。

QImageReader.setScaledClipRect (self, QRect rect)

设置缩放剪辑矩形到rect。缩放剪辑矩形是剪辑矩形(也称为投资回报率,或感兴趣区域)所应用的图像已被缩放后。

See also scaledClipRect()和setScaledSize( ) 。

QImageReader.setScaledSize (self, QSize size)

设置图像的缩放的大小来size。的缩放初始剪辑矩形后进行的,但经缩放的剪辑矩形应用之前。用于缩放的算法依赖于图像格式。默认情况下(即,如果图像格式不支持缩放)QImageReader将使用QImage.scale ( )与Qt.SmoothScaling 。

See also scaledSize( )setClipRect()和setScaledClipRect( ) 。

QSize QImageReader.size (self)

返回图像的大小,而无需实际读出图像的内容。

如果图像格式不支持此功能,这个函数返回一个无效的大小。 Qt的内置图像处理程序都支持此功能,但自定义图像格式的插件并不需要这么做。

See also QImageIOHandler.ImageOptionQImageIOHandler.option()和QImageIOHandler.supportsOption( ) 。

list-of-QByteArray QImageReader.supportedImageFormats ()

传回的图像格式所支持的列表QImageReader

默认情况下, Qt可以阅读以下格式:

Format Description
BMP Windows Bitmap
GIF Graphic Interchange Format (optional)
JPG Joint Photographic Experts Group
JPEG Joint Photographic Experts Group
MNG Multiple-image Network Graphics
PNG Portable Network Graphics
PBM Portable Bitmap
PGM Portable Graymap
PPM Portable Pixmap
TIFF Tagged Image File Format
XBM X11 Bitmap
XPM X11 Pixmap
SVG Scalable Vector Graphics
TGA Targa Image Format

读取和写入SVG文件是通过Qt的支持SVG Module

TGA只支持扩展到读非RLE压缩文件。尤其调用 capabilities对于TGA插件只返回QImageIOPlugin.CanRead,不QImageIOPlugin.CanWrite

要配置的Qt与支持GIF ,通过-qt-gifconfigure脚本或检查在图形安装程序中的相应选项。

注意,这个QApplication实例必须调用此函数之前创建。

See also setFormat( )QImageWriter.supportedImageFormats()和QImageIOPlugin

bool QImageReader.supportsAnimation (self)

返回True如果图像格式支持动画,否则返回False 。

这个函数是Qt 4.1中引入。

See also QMovie.supportedFormats().

bool QImageReader.supportsOption (self, QImageIOHandler.ImageOption option)

返回True如果读者支持option否则返回False 。

不同的图像格式支持不同的选项。调用此函数来判断某个选项是否支持当前格式。例如, PNG格式允许你嵌入文本到图像的元数据(见text( ) ) ,和BMP格式允许您确定图像的大小,而无需加载整个图像到内存中(见size())。

 QImageReader reader(":/image.png");
 if (reader.supportsOption(QImageIOHandler.Size))
     qDebug() << "Size:" << reader.size();

这个函数中引入了Qt 4.2中。

See also QImageWriter.supportsOption( ) 。

QString QImageReader.text (self, QString key)

返回与相关图像的文字key

支持这个选项是通过实施QImageIOHandler.Description

这个函数是Qt 4.1中引入。

See also textKeys()和QImageWriter.setText( ) 。

QStringList QImageReader.textKeys (self)

返回文本键这一形象。您可以使用这些按键与text( )列出图像文本的某些关键。

支持这个选项是通过实施QImageIOHandler.Description

这个函数是Qt 4.1中引入。

See also text( )QImageWriter.setText()和QImage.textKeys( ) 。




PyQt 4.10.3 for X11 Copyright © Riverbank Computing Ltd and Nokia 2012 Qt 4.8.5