1 package Imager::File::TIFF;
4 use vars qw($VERSION @ISA);
11 XSLoader::load('Imager::File::TIFF', $VERSION);
15 push @ISA, 'DynaLoader';
16 bootstrap Imager::File::TIFF $VERSION;
20 Imager->register_reader
25 my ($im, $io, %hsh) = @_;
27 my $allow_incomplete = $hsh{allow_incomplete};
28 defined $allow_incomplete or $allow_incomplete = 0;
30 my $page = $hsh{page};
31 defined $page or $page = 0;
32 $im->{IMG} = i_readtiff_wiol($io, $allow_incomplete, $page);
35 $im->_set_error(Imager->_error_as_msg);
45 my @imgs = i_readtiff_multi_wiol($io);
47 Imager->_set_error(Imager->_error_as_msg);
51 return map bless({ IMG => $_, ERRSTR => undef }, "Imager"), @imgs;
55 Imager->register_writer
60 my ($im, $io, %hsh) = @_;
62 $im->_set_opts(\%hsh, "i_", $im);
63 $im->_set_opts(\%hsh, "tiff_", $im);
64 $im->_set_opts(\%hsh, "exif_", $im);
66 if (defined $hsh{class} && $hsh{class} eq "fax") {
67 my $fax_fine = $hsh{fax_fine};
68 defined $fax_fine or $fax_fine = 1;
69 if (!i_writetiff_wiol_faxable($im->{IMG}, $io, $fax_fine)) {
70 $im->{ERRSTR} = Imager->_error_as_msg();
75 unless (i_writetiff_wiol($im->{IMG}, $io)) {
76 $im->_set_error(Imager->_error_as_msg);
84 my ($class, $io, $opts, @ims) = @_;
86 Imager->_set_opts($opts, "tiff_", @ims);
87 Imager->_set_opts($opts, "exif_", @ims);
89 my @work = map $_->{IMG}, @ims;
90 my $tiff_class = $opts->{class};
91 defined $tiff_class or $tiff_class = "";
94 if ($tiff_class eq "fax") {
95 my $fax_fine = $opts->{fax_fine};
96 defined $fax_fine or $fax_fine = 1;
97 $result = i_writetiff_multi_wiol_faxable($io, $fax_fine, @work);
100 $result = i_writetiff_multi_wiol($io, @work);
103 $class->_set_error($class->_error_as_msg);
115 Imager::File::TIFF - read and write TIFF files
121 my $img = Imager->new;
122 $img->read(file=>"foo.tiff")
125 $img->write(file => "foo.tif")
130 Imager's TIFF support is documented in L<Imager::Files>.
134 Tony Cook <tony@imager.perl.org>
138 Imager, Imager::Files.