返回介绍

QImageConsumer Class

发布于 2019-10-04 15:00:40 字数 4051 浏览 977 评论 0 收藏 0

The QImageConsumer class is an abstraction used by QImageDecoder. More...

#include <qasyncimageio.h>

List of all member functions.

Public Members

  • virtual void end () = 0
  • virtual void changed ( const QRect & ) = 0
  • virtual void frameDone () = 0
  • virtual void frameDone ( constQPoint&offset, constQRect&rect ) = 0
  • virtual void setLooping ( intn ) = 0
  • virtual void setFramePeriod ( intmilliseconds ) = 0
  • virtual void setSize ( int, int ) = 0

Detailed Description

The QImageConsumer class is an abstraction used by QImageDecoder.

The QMovie class, or QLabel::setMovie(), are easy to use and for most situations do what you want with regards animated images.

A QImageConsumer consumes information about changes to the QImage maintained by a QImageDecoder. Think of the QImage as the model or source of the image data, with the QImageConsumer as a view of that data and the QImageDecoder being the controller that orchestrates the relationship between the model and the view.

You'd use the QImageConsumer class, for example, if you were implementing a web browser with your own image loaders.

See also QImageDecoder, Graphics Classes, Image Processing Classes and Multimedia Classes.


Member Function Documentation

void QImageConsumer::changed ( constQRect& ) [pure virtual]

Called when the given area of the image has changed.

void QImageConsumer::end () [pure virtual]

Called when all the data from all the frames has been decoded and revealed as changed().

void QImageConsumer::frameDone () [pure virtual]

One of the two frameDone() functions will be called when a frame of an animated image has ended and been revealed as changed().

When this function is called, the current image should be displayed.

The decoder will not make any further changes to the image until the next call to QImageFormat::decode().

void QImageConsumer::frameDone ( constQPoint&offset, constQRect&rect ) [pure virtual]

This is an overloaded member function, provided for convenience. It behaves essentially like the above function.

One of the two frameDone() functions will be called when a frame of an animated image has ended and been revealed as changed().

When this function is called, the area rect in the current image should be moved by offset and displayed.

The decoder will not make any further changes to the image until the next call to QImageFormat::decode().

void QImageConsumer::setFramePeriod ( intmilliseconds ) [pure virtual]

Notes that the frame about to be decoded should not be displayed until the given number of milliseconds after the time that this function is called. Of course, the image may not have been decoded by then, in which case the frame should not be displayed until it is complete. A value of -1 (the assumed default) indicates that the image should be displayed even while it is only partially loaded.

void QImageConsumer::setLooping ( intn ) [pure virtual]

Called to indicate that the sequence of frames in the image should be repeated n times, including the sequence during decoding.

  • 0 = Forever
  • 1 = Only display frames the first time through
  • 2 = Repeat once after first pass through images
  • etc.

To make the QImageDecoder do this, just delete it and pass the information to it again for decoding (setLooping() will be called again, of course, but that can be ignored), or keep copies of the changed areas at the ends of frames.

void QImageConsumer::setSize ( int, int ) [pure virtual]

This function is called as soon as the size of the image has been determined.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文