Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Comments and suggestions on new module

by tonyc (Friar)
on Sep 19, 2007 at 01:04 UTC ( [id://639776]=note: print w/replies, xml ) Need Help??

in reply to Comments and suggestions on new module

As LTjake suggests, you might want to create a subclass for each of the imaging libraries you support.

For example, you have a line() method, instead of defining that in Image::Mate with a huge conditional for each implementation, you simply define it in each of the derived classes. Then have Image::Mate::new() return an object of that type.

Imager does something similar for its font support - Imager::Font itself doesn't know how to draw text, it lets Imager::Font::(Truetype|Win32|FreeType2|Type1) specialize _draw() which does all the heavy lifting.

This is pretty basic OO.

Another issue I see is that you appear to load every one of the imaging libraries even though the user would only want to use one of them, and you then call import() in package main for that module.

The use of the c option to new() seems a bit inconsitent too - for GD this is used to decide between a paletted image and a true color image, for Imager it's used to decide between an 8-bits/sample image (24-bit color) and 16-bits/sample (48-bit color), but I suspect this is a case of trying to make sense of the different options the modules support.

  • Comment on Re: Comments and suggestions on new module

Replies are listed 'Best First'.
Re^2: Comments and suggestions on new module
by cosmicperl (Chaplain) on Sep 20, 2007 at 14:57 UTC
    Your right it is my trying to make sense of the different options they support. Not all the doc's are straight forward, certainly not for ImageMagick.

    I'll brush up some more on my OO, be be honest I haven't made any OO code with Perl before so it's all pretty new to me.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://639776]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-05-21 09:41 GMT
Find Nodes?
    Voting Booth?

    No recent polls found