FLTK 1.4.4
Toggle main menu visibility
Loading...
Searching...
No Matches
Fl_GIF_Image.H
1
//
2
// GIF image header file for the Fast Light Tool Kit (FLTK).
3
//
4
// Copyright 1998-2024 by Bill Spitzak and others.
5
//
6
// This library is free software. Distribution and use rights are outlined in
7
// the file "COPYING" which should have been included with this file. If this
8
// file is missing or damaged, see the license at:
9
//
10
// https://www.fltk.org/COPYING.php
11
//
12
// Please see the following page on how to report bugs and issues:
13
//
14
// https://www.fltk.org/bugs.php
15
//
16
17
/* \file
18
Fl_GIF_Image widget . */
19
20
#ifndef Fl_GIF_Image_H
21
#define Fl_GIF_Image_H
22
# include "Fl_Pixmap.H"
23
29
class
FL_EXPORT
Fl_GIF_Image
:
public
Fl_Pixmap
{
30
31
public
:
32
33
Fl_GIF_Image
(
const
char
* filename);
34
// deprecated constructor w/o length (for backwards compatibility)
35
Fl_GIF_Image
(
const
char
* imagename,
const
unsigned
char
*
data
);
36
// constructor with length (since 1.4.0)
37
Fl_GIF_Image
(
const
char
* imagename,
const
unsigned
char
*
data
,
const
size_t
length);
38
39
static
bool
is_animated(
const
char
*name_);
44
static
bool
animate
;
45
46
protected
:
47
48
// Protected constructors needed for animated GIF support through Fl_Anim_GIF_Image.
49
Fl_GIF_Image
(
const
char
* filename,
bool
anim);
50
Fl_GIF_Image
(
const
char
* imagename,
const
unsigned
char
*
data
,
const
size_t
length,
bool
anim);
51
// Protected default constructor needed for Fl_Anim_GIF_Image.
52
Fl_GIF_Image
();
53
54
void
load_gif_(
class
Fl_Image_Reader
&rdr,
bool
anim=
false
);
55
56
void
load
(
const
char
* filename,
bool
anim);
57
void
load
(
const
char
* imagename,
const
unsigned
char
*
data
,
const
size_t
length,
bool
anim);
58
59
// Internal structure to "glue" animated GIF support into Fl_GIF_Image.
60
// This data is passed during decoding to the Fl_Anim_GIF_Image class.
61
struct
GIF_FRAME {
62
int
ifrm, width, height, x, y, w, h,
63
clrs, bkgd, trans,
64
dispose, delay;
65
const
uchar
*bptr;
66
const
struct
CPAL
{
67
uchar
r, g, b;
68
} *cpal;
69
GIF_FRAME(
int
frame,
uchar
*
data
) : ifrm(frame), bptr(
data
) {}
70
GIF_FRAME
(
int
frame,
int
W,
int
H,
int
fx,
int
fy,
int
fw,
int
fh,
uchar
*
data
) :
71
ifrm(frame), width(W), height(H), x(fx), y(fy),
w
(fw),
h
(fh), bptr(
data
) {}
72
void
disposal(
int
mode,
int
time) { dispose = mode; this->delay = time; }
73
void
colors(
int
nclrs,
int
bg,
int
tp) { clrs = nclrs; bkgd = bg; trans = tp; }
74
};
75
76
// Internal virtual methods, which are called during decoding to pass data
77
// to the Fl_Anim_GIF_Image class.
78
virtual
void
on_frame_data(GIF_FRAME &) {}
79
virtual
void
on_extension_data(GIF_FRAME &) {}
80
81
private
:
82
83
void
lzw_decode(Fl_Image_Reader &rdr,
uchar
*Image,
int
Width,
int
Height,
int
CodeSize,
int
ColorMapSize,
int
Interlace);
84
};
85
86
#endif
Fl_GIF_Image::load
void load(const char *filename, bool anim)
The protected load() methods are used by Fl_Anim_GIF_Image to request loading of animated GIF's.
Definition
Fl_GIF_Image.cxx:787
Fl_GIF_Image::animate
static bool animate
Sets how the shared image core routine should treat animated GIF files.
Definition
Fl_GIF_Image.H:44
Fl_GIF_Image::Fl_GIF_Image
Fl_GIF_Image(const char *filename)
This constructor loads a GIF image from the given file.
Definition
Fl_GIF_Image.cxx:133
Fl_Image_Reader
Definition
Fl_Image_Reader.h:32
Fl_Image::data
void data(const char *const *p, int c)
Sets the current data pointer and count of pointers in the array.
Definition
Fl_Image.H:117
Fl_Image::h
void h(int H)
Sets the height of the image data.
Definition
Fl_Image.H:93
Fl_Image::w
void w(int W)
Sets the width of the image data.
Definition
Fl_Image.H:87
Fl_Pixmap::Fl_Pixmap
Fl_Pixmap(char *const *D)
The constructors create a new pixmap from the specified XPM data.
Definition
Fl_Pixmap.H:58
uchar
unsigned char uchar
unsigned char
Definition
fl_types.h:30
Fl_GIF_Image::GIF_FRAME::CPAL
Definition
Fl_GIF_Image.H:66
Fl_GIF_Image::GIF_FRAME
Definition
Fl_GIF_Image.H:61
FL
Fl_GIF_Image.H
Generated by
1.17.0