sub resize_image { my ($self,$file) = @_; my($image, $x); print "Creating image " . $self->percent . "% the size of $file\n"; $image = Image::Magick->new; $x = $image->Read($self->source_directory . "/$file"); warn "$x" if "$x"; $x = $image->Resize('geometry' => $self->percent ."%" ); warn "$x" if "$x"; $x = $image->Write($self->output_directory . "/" . $self->prefix . "$file"); warn $x if $x; } sub make_various_sizes { my ($self,$size_list) = @_; =pod # size list example $size_list = [ { prefix => 'small_', percent => '15' }, { prefix => 'medium_', percent => '50' }, ]; =cut foreach my $size (@{$size_list}) { $self->prefix( $size->{'prefix'} ); $self->percent( $size->{'percent'} ); $self->resize_images(); } } sub resize_images { my ($self) = @_; foreach my $file (@{ $self->{'list'} }) { $self->resize_image($file); } }