Hi all,
I'm new to writing Object Oriented Perl and am hoping for some advice?
I found the need to use Image::Magick tonight and in order to reuse the
code in future I put it in a package of subs.
I then thought it seemed like a good opportunity to try writing an OO
module so I did.
However I'm not sure that I couldn't do it better by making use of
inheritance although I'm not sure how to do it and also looking for any
other suggestions.
A cut down version of my code goes like this...
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#!/usr/bin/perl
use strict;
use warnings;
use Carp;
my $error;
my $obj_image;
my $obj_image = MIS::Common::Image_magick->new( { path =>
'/home/nigel/scripts/taylor1.jpg' } );
$obj_image->resize ( { geometry => '360' } );
$obj_image->crop ( { geometry => '360x480' } );
$obj_image->output ( { path =>
'/home/nigel/scripts/taylor/thumbnail.jpg' } );
######################################################################
package MIS::Common::Image_magick;
use Image::Magick;
sub new {
my ( $class, $data ) = @_;
$data->{image_magick_object} = Image::Magick::new();
my $error = $data->{image_magick_object}->Read( $data->{path} );
croak $error if $error;
return bless $data, $class;
}
sub output {
my ( $self, $args ) = @_;
my $error = $self->{image_magick_object}->Write( $args->{path} );
croak $error if $error;
}
sub resize {
my ( $self, $args ) = @_;
$error = $self->{image_magick_object}->Resize( geometry =>
$args->{geometry} );
croak $error if $error;
}
sub crop {
my ( $self, $args ) = @_;
$error = $self->{image_magick_object}->Crop( geometry =>
$args->{geometry} );
croak $error if $error;
}
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
What could I do better?
TIA.
Cheers,
Nigel
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/