1 package Imager::File::GIF;
4 use vars qw($VERSION @ISA);
11 XSLoader::load('Imager::File::GIF', $VERSION);
14 print STDERR "Falling back to DynaLoader ($@)\n";
16 push @ISA, 'DynaLoader';
17 bootstrap Imager::File::GIF $VERSION;
21 Imager->register_reader
26 my ($im, $io, %hsh) = @_;
28 if ($hsh{gif_consolidate}) {
31 ($im->{IMG}, $colors) =i_readgif_wiol( $io );
33 ${ $hsh{colors} } = [ map { NC(@$_) } @$colors ];
37 $im->{IMG} =i_readgif_wiol( $io );
41 my $page = $hsh{page};
42 defined $page or $page = 0;
43 $im->{IMG} = i_readgif_single_wiol($io, $page);
46 $im->_set_error(Imager->_error_as_msg);
50 ${ $hsh{colors} } = [ $im->getcolors ];
59 my @imgs = i_readgif_multi_wiol($io);
61 Imager->_set_error(Imager->_error_as_msg);
65 return map bless({ IMG => $_, ERRSTR => undef }, "Imager"), @imgs;
69 Imager->register_writer
74 my ($im, $io, %hsh) = @_;
76 $im->_set_opts(\%hsh, "i_", $im);
77 $im->_set_opts(\%hsh, "gif_", $im);
79 unless (i_writegif_wiol($io, \%hsh, $im->{IMG})) {
80 $im->_set_error(Imager->_error_as_msg);
87 my ($class, $io, $opts, @ims) = @_;
89 Imager->_set_opts($opts, "gif_", @ims);
91 my @work = map $_->{IMG}, @ims;
92 unless (i_writegif_wiol($io, $opts, @work)) {
93 Imager->_set_error(Imager->_error_as_msg);
105 Imager::File::GIF - read and write GIF files
111 my $img = Imager->new;
112 $img->read(file=>"foo.gif")
115 $img->write(file => "foo.gif")
120 Imager's GIF support is documented in L<Imager::Files>.
124 Tony Cook <tonyc@cpan.org>
128 Imager, Imager::Files.