Initial Commit
This commit is contained in:
133
database/perl/vendor/lib/Imager/File/TIFF.pm
vendored
Normal file
133
database/perl/vendor/lib/Imager/File/TIFF.pm
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
package Imager::File::TIFF;
|
||||
use 5.006;
|
||||
use strict;
|
||||
use Imager;
|
||||
|
||||
BEGIN {
|
||||
our $VERSION = "0.92";
|
||||
|
||||
require XSLoader;
|
||||
XSLoader::load('Imager::File::TIFF', $VERSION);
|
||||
}
|
||||
|
||||
Imager->register_reader
|
||||
(
|
||||
type=>'tiff',
|
||||
single =>
|
||||
sub {
|
||||
my ($im, $io, %hsh) = @_;
|
||||
|
||||
my $allow_incomplete = $hsh{allow_incomplete};
|
||||
defined $allow_incomplete or $allow_incomplete = 0;
|
||||
|
||||
my $page = $hsh{page};
|
||||
defined $page or $page = 0;
|
||||
$im->{IMG} = i_readtiff_wiol($io, $allow_incomplete, $page);
|
||||
|
||||
unless ($im->{IMG}) {
|
||||
$im->_set_error(Imager->_error_as_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
return $im;
|
||||
},
|
||||
multiple =>
|
||||
sub {
|
||||
my ($io, %hsh) = @_;
|
||||
|
||||
my @imgs = i_readtiff_multi_wiol($io);
|
||||
unless (@imgs) {
|
||||
Imager->_set_error(Imager->_error_as_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
return map bless({ IMG => $_, ERRSTR => undef }, "Imager"), @imgs;
|
||||
},
|
||||
);
|
||||
|
||||
Imager->register_writer
|
||||
(
|
||||
type=>'tiff',
|
||||
single =>
|
||||
sub {
|
||||
my ($im, $io, %hsh) = @_;
|
||||
|
||||
$im->_set_opts(\%hsh, "i_", $im);
|
||||
$im->_set_opts(\%hsh, "tiff_", $im);
|
||||
$im->_set_opts(\%hsh, "exif_", $im);
|
||||
|
||||
if (defined $hsh{class} && $hsh{class} eq "fax") {
|
||||
my $fax_fine = $hsh{fax_fine};
|
||||
defined $fax_fine or $fax_fine = 1;
|
||||
if (!i_writetiff_wiol_faxable($im->{IMG}, $io, $fax_fine)) {
|
||||
$im->{ERRSTR} = Imager->_error_as_msg();
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
else {
|
||||
unless (i_writetiff_wiol($im->{IMG}, $io)) {
|
||||
$im->_set_error(Imager->_error_as_msg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
return $im;
|
||||
},
|
||||
multiple =>
|
||||
sub {
|
||||
my ($class, $io, $opts, @ims) = @_;
|
||||
|
||||
Imager->_set_opts($opts, "tiff_", @ims);
|
||||
Imager->_set_opts($opts, "exif_", @ims);
|
||||
|
||||
my @work = map $_->{IMG}, @ims;
|
||||
my $tiff_class = $opts->{class};
|
||||
defined $tiff_class or $tiff_class = "";
|
||||
|
||||
my $result;
|
||||
if ($tiff_class eq "fax") {
|
||||
my $fax_fine = $opts->{fax_fine};
|
||||
defined $fax_fine or $fax_fine = 1;
|
||||
$result = i_writetiff_multi_wiol_faxable($io, $fax_fine, @work);
|
||||
}
|
||||
else {
|
||||
$result = i_writetiff_multi_wiol($io, @work);
|
||||
}
|
||||
unless ($result) {
|
||||
$class->_set_error($class->_error_as_msg);
|
||||
return;
|
||||
}
|
||||
|
||||
return 1;
|
||||
},
|
||||
);
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Imager::File::TIFF - read and write TIFF files
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use Imager;
|
||||
|
||||
my $img = Imager->new;
|
||||
$img->read(file=>"foo.tiff")
|
||||
or die $img->errstr;
|
||||
|
||||
$img->write(file => "foo.tif")
|
||||
or die $img->errstr;
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Imager's TIFF support is documented in L<Imager::Files>.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Tony Cook <tonyc@cpan.org>
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
Imager, Imager::Files.
|
||||
|
||||
=cut
|
||||
Reference in New Issue
Block a user