| import '../../internal/internal.dart'; |
| import '../../util/input_buffer.dart'; |
| import '../decode_info.dart'; |
| import 'webp_frame.dart'; |
| |
| // Features gathered from the bitstream |
| class WebPInfo extends DecodeInfo { |
| // enum Format |
| static const int FORMAT_UNDEFINED = 0; |
| static const int FORMAT_LOSSY = 1; |
| static const int FORMAT_LOSSLESS = 2; |
| static const int FORMAT_ANIMATED = 3; |
| |
| // True if the bitstream contains an alpha channel. |
| bool hasAlpha = false; |
| |
| // True if the bitstream is an animation. |
| bool hasAnimation = false; |
| |
| // 0 = undefined (/mixed), 1 = lossy, 2 = lossless, 3 = animated |
| int format = FORMAT_UNDEFINED; |
| |
| // ICCP data string. |
| String iccp = ''; |
| |
| // EXIF data string. |
| String exif = ''; |
| |
| // XMP data string. |
| String xmp = ''; |
| |
| // How many times the animation should loop. |
| int animLoopCount = 0; |
| |
| // Information about each animation frame. |
| List<WebPFrame> frames = []; |
| |
| int get numFrames => frames.length; |
| |
| int _frame; |
| int _numFrames; |
| |
| InputBuffer _alphaData; |
| int _alphaSize; |
| int _vp8Position; |
| int _vp8Size; |
| } |
| |
| @internal |
| class InternalWebPInfo extends WebPInfo { |
| int get frame => _frame; |
| set frame(int value) => _frame = value; |
| |
| int get numFrames => _numFrames; |
| set numFrames(int value) => _numFrames = value; |
| |
| InputBuffer get alphaData => _alphaData; |
| set alphaData(InputBuffer buffer) => _alphaData = buffer; |
| |
| int get alphaSize => _alphaSize; |
| set alphaSize(int value) => _alphaSize = value; |
| |
| int get vp8Position => _vp8Position; |
| set vp8Position(int value) => _vp8Position = value; |
| |
| int get vp8Size => _vp8Size; |
| set vp8Size(int value) => _vp8Size = value; |
| } |