Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QImageReader类提供了从文件或其它设备读取图像的格式无关的接口。More...
该QImageReader类提供了从文件或其它设备读取图像的格式无关的接口。
对图像进行读取的最常见的方式是通过QImage和QPixmap的构造函数,或致电QImage.load()和QPixmap.load( ) 。 QImageReader是一家专业类阅读图像时它给你更多的控制。例如,你可以通过调用读取图像到一个特定的大小setScaledSize( ) ,你可以选择一个剪辑矩形,有效地只加载部分的图像,通过调用setClipRect( ) 。根据不同的图像格式的支持基础上的,这样可以节省内存,加快加载图像。
要读取的图像,你通过构建一个QImageReader对象开始。通过其中一个文件名或设备指针,图像格式QImageReader的构造函数。然后,您可以设置多个选项,如剪辑矩形(通过调用setClipRect( ) )和缩放大小(通过调用setScaledSize())。canRead()返回的图像,如果QImageReader可以读取图像(即,被支持的图像格式和设备开放阅读) 。通话read()来读取该图像。
如果在读取图像时出现任何错误,read( )将返回一个nullQImage。然后,您可以调用error()找到所发生的错误的类型,或者errorString()来得到一个什么地方出了错人类可读的描述。
Call supportedImageFormats()用于该QImageReader可以阅读格式的列表。 QImageReader支持所有内置的图像格式,除了支持读取任何图像格式的插件。
QImageReader自动检测默认的图像格式,通过查看所提供(可选)格式字符串,文件名后缀,和数据流内容。您可以启用或禁用此功能,通过调用setAutoDetectImageFormat( ) 。
这个枚举变量描述了不同类型的错误与读取图像时可能发生的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。 |
构造一个空QImageReader对象。在阅读的图像,调用setDevice()或setFileName( ) 。
构造一个QImageReader与设备对象device和图像格式format。
构造一个QImageReader用文件名对象fileName和图像格式format。
See also setFileName( ) 。
返回True如果图像格式自动检测是对这个形象的读者能,否则返回False 。默认情况下,自动检测被启用。
See also setAutoDetectImageFormat( ) 。
返回的阅读一个图像时使用的背景颜色。如果图像格式不支持设置背景色无效的颜色恢复。
这个函数是Qt 4.1中引入。
See also setBackgroundColor()和read( ) 。
返回True如果图像可以读取的设备(例如,支持的图像格式,并且该设备似乎包含有效的数据),否则返回False 。
的CanRead ()是一个轻量级函数只能执行快速测试以查看该图像数据是有效的。read( )的CanRead后仍可能返回False ( )返回True ,如果图像数据被破坏。
对于支持动画影像时,所有帧都被读取,的CanRead ( )返回False 。
See also read()和supportedImageFormats( ) 。
返回图像的剪辑矩形(也被称为ROI ,或感兴趣区域) 。如果没有剪辑矩形已定,一个无效的QRect返回。
See also setClipRect( ) 。
对于支持动画图像格式,该函数返回当前帧的序列号。如果图像格式不支持动画,则返回0 。
该函数返回-1,如果发生了错误。
See also supportsAnimation( )QImageIOHandler.currentImageNumber()和canRead( ) 。
对于支持动画图像格式,该函数返回的矩形为当前帧。否则,将返回一个空矩形。
See also supportsAnimation()和QImageIOHandler.currentImageRect( ) 。
返回的图像读取器是否应该决定哪些插件只使用基于数据流的内容,而不是文件扩展名。
See also setDecideFormatFromContent( ) 。
返回当前分配给设备QImageReader,或者0,如果没有设备已经被分配。
See also setDevice( ) 。
返回上次发生错误的类型。
See also ImageReaderError和errorString( ) 。
返回上次发生错误的可读描述。
See also error( ) 。
如果当前分配装置是QFile,或者如果setFileName( )被调用,此函数返回文件的名称QImageReader读取。否则(即,如果没有设备已被分配或设备不是QFile) ,空QString返回。
See also setFileName()和setDevice( ) 。
返回格式QImageReader用来读取图像。
可以分配一个设备向读者以确定该设备的格式之后,调用此函数。例如:
QImageReader reader("image.png"); // reader.format() == "png"
如果读者不能从设备读取任何图像(例如,没有图像出现,或图像已经被读取) ,或者如果格式是不支持的,这个函数返回一个空QByteArray中( ) 。
See also setFormat()和supportedImageFormats( ) 。
对于支持动画图像格式,该函数返回的动画图像的总数。如果格式不支持动画,则返回0 。
该函数返回-1,如果发生了错误。
See also supportsAnimation( )QImageIOHandler.imageCount()和canRead( ) 。
返回的图像的格式,而无需实际读出图像的内容。该格式描述的图像格式QImageReader.read( )返回,而不是实际的图像的格式。
如果图像格式不支持此功能,这个函数返回一个无效的格式。
此功能被引入Qt的4.5 。
See also QImageIOHandler.ImageOption,QImageIOHandler.option()和QImageIOHandler.supportsOption( ) 。
如果支持的话,这个函数返回文件的图像格式fileName。否则,返回一个空字符串。
如果支持,则该函数返回设备的图像格式device。否则,返回一个空字符串。
See also QImageReader.autoDetectImageFormat( ) 。
对于支持动画图像格式,该函数将跳到其序列号是图像imageNumber,返回True,如果成功则返回False相应的图像不能被发现。
到下一次调用read( )将尝试读取这个形象。
See also jumpToNextImage()和QImageIOHandler.jumpToImage( ) 。
对于支持动画图像格式,该功能的步骤在当前图像,返回True,如果成功或假,如果有在动画没有下面的图像。
默认实现调用read( ),则丢弃所得到的图像,但图像处理程序可能必须执行这一操作的更有效的方法。
See also jumpToImage()和QImageIOHandler.jumpToNextImage( ) 。
对于支持动画图像格式,该函数返回的时候动画应该循环的次数。如果这个函数返回-1 ,它可以意味着动画应该永远循环下去,或者发生了错误。如果发生错误,则canRead( )将返回False 。
See also supportsAnimation( )QImageIOHandler.loopCount()和canRead( ) 。
对于支持动画图像格式,该函数返回的毫秒数要等到显示在动画的下一帧。如果图像格式不支持动画,则返回0 。
该函数返回-1,如果发生了错误。
See also supportsAnimation( )QImageIOHandler.nextImageDelay()和canRead( ) 。
返回的图像的质量级别。
这个函数中引入了Qt 4.2中。
See also setQuality( ) 。
读取从设备中的图像。成功时,所读取的图像传回,否则空QImage返回。然后,您可以调用error()找到所发生的错误的类型,或者errorString( )来获得错误的可读描述。
对于支持动画,调用读取的图像格式( )多次将返回下一帧。当所有的帧都被读取,一个空的图像将被退回。
See also canRead( )supportedImageFormats( )supportsAnimation()和QMovie。
这是一个重载函数。
读取从设备中的图像进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。
返回的图像的缩放的夹子正确。
See also setScaledClipRect( ) 。
返回的图像的缩放大小。
See also setScaledSize( ) 。
If enabled诚然,图像格式自动检测被启用,否则,它被禁用。默认情况下,自动检测被启用。
QImageReader使用广泛的方法来检测图像格式:首先,如果你传递一个文件名QImageReader,它会尝试检测文件的扩展名,如果给定的文件名不指向现有的文件,通过追加支持默认扩展到给定的文件名,一次一个。然后使用下面的方法来检测图像格式:
通过禁用图像格式自动检测,QImageReader只有查询的基础上,格式字符串(例如,没有文件扩展名进行测试)的插件和内置的处理程序。
See also autoDetectImageFormat( )QImageIOHandler.canRead()和QImageIOPlugin.capabilities( ) 。
设置背景色为color。支持此操作的图像格式,预计到后台初始化color前阅读一个图像。
这个函数是Qt 4.1中引入。
See also backgroundColor()和read( ) 。
设定影像剪辑矩形(也称为投资回报率,或感兴趣区域) ,以rect。的坐标rect是相对于未转化的图像的大小,所返回的size( ) 。
See also clipRect( )setScaledSize()和setScaledClipRect( ) 。
If ignored设置为True ,则图像阅读器将忽略指定的格式或文件扩展名,并决定哪些插件只是基于在数据流中的内容使用。
设置这个标志意味着所有图像插件被加载。每个插件将读取的图像数据的第一个字节,并决定是否插件兼容与否。
这也将禁用自动检测的图像格式。
See also decideFormatFromContent( ) 。
Sets QImageReader的设备device。如果设备已经被设置,旧设备是从除去QImageReader而在其他情况保持不变。
如果该设备尚未打开,QImageReader将尝试在打开设备QIODevice.ReadOnly模式通过调用open ( ) 。注意,这并不对某些设备,如工作QProcess,QTcpSocket和QUdpSocket,其中更多的逻辑需要打开设备。
See also device()和setFileName( ) 。
设置的文件名QImageReader至fileName。在内部,QImageReader将创建一个QFile对象,并在打开它QIODevice.ReadOnly模式,阅读图像时使用这个。
If fileName不包括文件扩展名(例如, 。 PNG或。 BMP ) ,QImageReader将循环遍历所有支持的扩展,直到找到一个匹配的文件。
See also fileName( )setDevice()和supportedImageFormats( ) 。
设置格式QImageReader将使用阅读图像时,以format。format是不区分大小写的文本字符串。例如:
QImageReader reader; reader.setFormat("png"); // same as reader.setFormat("PNG");
您可以致电supportedImageFormats( )对于格式的完整列表QImageReader支持。
See also format( ) 。
这是一种图像格式的具体功能,用于设置图像的质量水平来quality。对于不支持设置质量的图像格式,该值将被忽略。
的取值范围quality取决于图像格式。例如, “JPEG”格式支持的质量范围从0(低品质,高压缩)到100 (高品质,低压缩率) 。
这个函数中引入了Qt 4.2中。
See also quality( ) 。
设置缩放剪辑矩形到rect。缩放剪辑矩形是剪辑矩形(也称为投资回报率,或感兴趣区域)所应用的图像已被缩放后。
See also scaledClipRect()和setScaledSize( ) 。
设置图像的缩放的大小来size。的缩放初始剪辑矩形后进行的,但经缩放的剪辑矩形应用之前。用于缩放的算法依赖于图像格式。默认情况下(即,如果图像格式不支持缩放)QImageReader将使用QImage.scale ( )与Qt.SmoothScaling 。
See also scaledSize( )setClipRect()和setScaledClipRect( ) 。
返回图像的大小,而无需实际读出图像的内容。
如果图像格式不支持此功能,这个函数返回一个无效的大小。 Qt的内置图像处理程序都支持此功能,但自定义图像格式的插件并不需要这么做。
See also QImageIOHandler.ImageOption,QImageIOHandler.option()和QImageIOHandler.supportsOption( ) 。
传回的图像格式所支持的列表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-gif到configure脚本或检查在图形安装程序中的相应选项。
注意,这个QApplication实例必须调用此函数之前创建。
See also setFormat( )QImageWriter.supportedImageFormats()和QImageIOPlugin。
返回True如果图像格式支持动画,否则返回False 。
这个函数是Qt 4.1中引入。
See also QMovie.supportedFormats().
返回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( ) 。
返回与相关图像的文字key。
支持这个选项是通过实施QImageIOHandler.Description。
这个函数是Qt 4.1中引入。
See also textKeys()和QImageWriter.setText( ) 。
返回文本键这一形象。您可以使用这些按键与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 |