1 package Imager::File::TIFF;
4 use vars qw($VERSION @ISA);
11 XSLoader::load('Imager::File::TIFF', $VERSION);
14 print STDERR "Falling back to DynaLoader ($@)\n";
16 push @ISA, 'DynaLoader';
17 bootstrap Imager::File::TIFF $VERSION;
21 Imager->register_reader
26 my ($im, $io, %hsh) = @_;
28 my $allow_incomplete = $hsh{allow_incomplete};
29 defined $allow_incomplete or $allow_incomplete = 0;
31 my $page = $hsh{page};
32 defined $page or $page = 0;
33 $im->{IMG} = i_readtiff_wiol($io, $allow_incomplete, $page);
36 $im->_set_error(Imager->_error_as_msg);
46 my @imgs = i_readtiff_multi_wiol($io);
48 Imager->_set_error(Imager->_error_as_msg);
52 return map bless({ IMG => $_, ERRSTR => undef }, "Imager"), @imgs;
56 Imager->register_writer
61 my ($im, $io, %hsh) = @_;
63 $im->_set_opts(\%hsh, "i_", $im);
64 $im->_set_opts(\%hsh, "tiff_", $im);
65 $im->_set_opts(\%hsh, "exif_", $im);
67 if (defined $hsh{class} && $hsh{class} eq "fax") {
68 my $fax_fine = $hsh{fax_fine};
69 defined $fax_fine or $fax_fine = 1;
70 if (!i_writetiff_wiol_faxable($im->{IMG}, $io, $fax_fine)) {
71 $im->{ERRSTR} = Imager->_error_as_msg();
76 unless (i_writetiff_wiol($im->{IMG}, $io)) {
77 $im->_set_error(Imager->_error_as_msg);
85 my ($class, $io, $opts, @ims) = @_;
87 Imager->_set_opts($opts, "tiff_", @ims);
88 Imager->_set_opts($opts, "exif_", @ims);
90 my @work = map $_->{IMG}, @ims;
91 my $tiff_class = $opts->{class};
92 defined $tiff_class or $tiff_class = "";
95 if ($tiff_class eq "fax") {
96 my $fax_fine = $opts->{fax_fine};
97 defined $fax_fine or $fax_fine = 1;
98 $result = i_writetiff_multi_wiol_faxable($io, $fax_fine, @work);
101 $result = i_writetiff_multi_wiol($io, @work);
104 $class->_set_error($class->_error_as_msg);
116 Imager::File::TIFF - read and write TIFF files
122 my $img = Imager->new;
123 $img->read(file=>"foo.tiff")
126 $img->write(file => "foo.tif")
131 Imager's TIFF support is documented in L<Imager::Files>.
135 Tony Cook <tony@imager.perl.org>
139 Imager, Imager::Files.