1
// This may look like C code, but it is really -*- C++ -*-
3
// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002
5
// Implementation of ImageRef
7
// This is an internal implementation class.
10
#define MAGICK_IMPLEMENTATION
12
#include "Magick++/ImageRef.h"
13
#include "Magick++/Exception.h"
14
#include "Magick++/Options.h"
16
// Construct with an image and default options
17
Magick::ImageRef::ImageRef ( MagickLib::Image * image_ )
19
_options(new Options),
26
// Construct with an image and options
27
// Inserts Image* in image, but copies Options into image.
28
Magick::ImageRef::ImageRef ( MagickLib::Image * image_,
29
const Options * options_ )
36
_options = new Options( *options_ );
39
// Default constructor
40
Magick::ImageRef::ImageRef ( void )
42
_options(new Options),
47
// Allocate default image
48
_image = AllocateImage( _options->imageInfo() );
50
// Test for error and throw exception (like throwImageException())
51
throwException(_image->exception);
55
Magick::ImageRef::~ImageRef( void )
57
// Unregister image (if still registered)
60
DeleteMagickRegistry( _id );
67
DestroyImageList( _image );
71
// Deallocate image options
76
// Assign image to reference
77
void Magick::ImageRef::image ( MagickLib::Image * image_ )
80
DestroyImageList( _image );
84
// Assign options to reference
85
void Magick::ImageRef::options ( Magick::Options * options_ )
91
// Assign registration id to reference
92
void Magick::ImageRef::id ( const long id_ )
95
DeleteMagickRegistry( _id );