CAD::Drawing::Manipulate::Graphics - Gimp meets CAD.
All of these are CAD::Drawing methods (I force my own inheritance:)
Initialize the image at $addr based on the value at the fullpath key. This establishes the contained Image::Magick object and loads the image into memory in the image_handle key.
Crops an image and its definition (actually, changes its insert point) according to the points given by @crop_points (which maybe had better be within the object (but I don't really sweat that.))
@crop_points should be in world coordinates as follows:
@crop_points = (
[$lower_left_x , $lower_left_y ],
# note that you can get these as
Scales both the image and the definition by $scale, starting at @base_point.
$drw->image_scale($addr, $scale, @base_point);
This leaves the definition orthoganal, expands the underlying image object, and resets the insert point and size properties accordingly.
$drw->image_rotate($addr, $angle, @point);
The current implementation does not handle the change to the image clipping boundary.
This involves a scaling of the image (the contexts should be aligned over each other at this point or everything will go to hell.) Do your own move / rotate / crop before calling this, because all this does is to scale the underlying image object such that the vec property of the image definition at $dest_addr can be used correctly.
Note that this does not "swap" the image to $dest_addr, rather it uses the image definition of $dest_addr to change the image object and definition at $source_addr.
Also note that the image must fit completely inside (I think) of the destination in order for the composite to work correctly.