1 package Imager::File::TIFF;
4 use vars qw($VERSION @ISA);
10 XSLoader::load('Imager::File::TIFF', $VERSION);
13 Imager->register_reader
18 my ($im, $io, %hsh) = @_;
20 my $allow_incomplete = $hsh{allow_incomplete};
21 defined $allow_incomplete or $allow_incomplete = 0;
23 my $page = $hsh{page};
24 defined $page or $page = 0;
25 $im->{IMG} = i_readtiff_wiol($io, $allow_incomplete, $page);
28 $im->_set_error(Imager->_error_as_msg);
38 my @imgs = i_readtiff_multi_wiol($io);
40 Imager->_set_error(Imager->_error_as_msg);
44 return map bless({ IMG => $_, ERRSTR => undef }, "Imager"), @imgs;
48 Imager->register_writer
53 my ($im, $io, %hsh) = @_;
55 $im->_set_opts(\%hsh, "i_", $im);
56 $im->_set_opts(\%hsh, "tiff_", $im);
57 $im->_set_opts(\%hsh, "exif_", $im);
59 if (defined $hsh{class} && $hsh{class} eq "fax") {
60 my $fax_fine = $hsh{fax_fine};
61 defined $fax_fine or $fax_fine = 1;
62 if (!i_writetiff_wiol_faxable($im->{IMG}, $io, $fax_fine)) {
63 $im->{ERRSTR} = Imager->_error_as_msg();
68 unless (i_writetiff_wiol($im->{IMG}, $io)) {
69 $im->_set_error(Imager->_error_as_msg);
77 my ($class, $io, $opts, @ims) = @_;
79 Imager->_set_opts($opts, "tiff_", @ims);
80 Imager->_set_opts($opts, "exif_", @ims);
82 my @work = map $_->{IMG}, @ims;
83 my $tiff_class = $opts->{class};
84 defined $tiff_class or $tiff_class = "";
87 if ($tiff_class eq "fax") {
88 my $fax_fine = $opts->{fax_fine};
89 defined $fax_fine or $fax_fine = 1;
90 $result = i_writetiff_multi_wiol_faxable($io, $fax_fine, @work);
93 $result = i_writetiff_multi_wiol($io, @work);
96 $class->_set_error($class->_error_as_msg);
108 Imager::File::TIFF - read and write TIFF files
114 my $img = Imager->new;
115 $img->read(file=>"foo.tiff")
118 $img->write(file => "foo.tif")
123 Imager's TIFF support is documented in L<Imager::Files>.
127 Tony Cook <tonyc@cpan.org>
131 Imager, Imager::Files.