if ($ex_version < 5.57) {
@ISA = qw(Exporter);
}
- $VERSION = '1.005';
+ $VERSION = '1.008';
require XSLoader;
XSLoader::load(Imager => $VERSION);
}
sub _valid_image {
my ($self, $method) = @_;
+ ref $self
+ or return Imager->_set_error("$method needs an image object");
+
$self->{IMG} && Scalar::Util::blessed($self->{IMG}) and return 1;
my $msg = $self->{IMG} ? "images do not cross threads" : "empty input image";
# translate to ImgRaw
my $index = 1;
for my $img (@images) {
+ unless (ref $img && Scalar::Util::blessed($img) && $img->isa("Imager")) {
+ $class->_set_error("write_multi: image $index is not an Imager image object");
+ return;
+ }
unless ($img->_valid_image("write_multi")) {
$class->_set_error($img->errstr . " (image $index)");
return;
return undef;
}
}
- i_poly_aa_cfill_m($self->{IMG}, $opts{'x'}, $opts{'y'},
- $mode, $opts{'fill'}{'fill'});
+ unless (i_poly_aa_cfill_m($self->{IMG}, $opts{'x'}, $opts{'y'},
+ $mode, $opts{'fill'}{'fill'})) {
+ return $self->_set_error($self->_error_as_msg);
+ }
}
else {
my $color = _color($opts{'color'});
unless ($color) {
$self->{ERRSTR} = $Imager::ERRSTR;
- return;
+ return;
+ }
+ unless (i_poly_aa_m($self->{IMG}, $opts{'x'}, $opts{'y'}, $mode, $color)) {
+ return $self->_set_error($self->_error_as_msg);
}
- i_poly_aa_m($self->{IMG}, $opts{'x'}, $opts{'y'}, $mode, $color);
}
return $self;
# Default guess for the type of an image from extension
-my @simple_types = qw(png tga gif raw ico cur xpm mng jng ilbm pcx psd eps);
+my @simple_types = qw(png tga gif raw ico cur xpm mng jng ilbm pcx psd eps webp xwd xpm dng ras);
my %ext_types =
(
return $type;
}
+sub add_type_extensions {
+ my ($class, $type, @exts) = @_;
+
+ for my $ext (@exts) {
+ exists $ext_types{lc $ext} or $ext_types{lc $ext} = lc $type;
+ }
+ 1;
+}
+
sub combines {
return @combine_types;
}
addtag() - L<Imager::ImageTypes/addtag()> - add image tags
+add_type_extensions() -
+L<Imager::Files/add_type_extensions($type, $ext, ...)> - add extensions for
+new image file types.
+
align_string() - L<Imager::Draw/align_string()> - draw text aligned on a
point