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; | |
} |