Magick++ 6.9.13
Loading...
Searching...
No Matches
Magick::PixelData Class Reference
Collaboration diagram for Magick::PixelData:

Public Member Functions

 PixelData (Magick::Image &image_, std::string map_, const StorageType type_)
 
 PixelData (Magick::Image &image_, const ::ssize_t x_, const ::ssize_t y_, const size_t width_, const size_t height_, std::string map_, const StorageType type_)
 
const void * data (void) const
 
::ssize_t length (void) const
 
::ssize_t size (void) const
 

Private Member Functions

 PixelData (const PixelData &pixels_)
 
const PixelDataoperator= (const PixelData &pixels_)
 
void init (Magick::Image &image_, const ::ssize_t x_, const ::ssize_t y_, const size_t width_, const size_t height_, std::string map_, const StorageType type_)
 
void relinquish (void) throw ()
 

Private Attributes

void * _data
 
::ssize_t _length
 
::ssize_t _size
 

Detailed Description

Definition at line 78 of file Pixels.h.

Constructor & Destructor Documentation

◆ PixelData() [1/2]

Magick::PixelData::PixelData ( Magick::Image & image_,
std::string map_,
const StorageType type_ )

Definition at line 101 of file Pixels.cpp.

103{
104 init(image_,0,0,image_.columns(),image_.rows(),map_,type_);
105}

◆ PixelData() [2/2]

Magick::PixelData::PixelData ( Magick::Image & image_,
const ::ssize_t x_,
const ::ssize_t y_,
const size_t width_,
const size_t height_,
std::string map_,
const StorageType type_ )

Definition at line 107 of file Pixels.cpp.

110{
111 init(image_,x_,y_,width_,height_,map_,type_);
112}

◆ ~PixelData()

Magick::PixelData::~PixelData ( void )

Definition at line 114 of file Pixels.cpp.

115{
116 relinquish();
117}

Member Function Documentation

◆ data()

const void * Magick::PixelData::data ( void ) const

Definition at line 119 of file Pixels.cpp.

120{
121 return(_data);
122}

◆ init()

void Magick::PixelData::init ( Magick::Image & image_,
const ::ssize_t x_,
const ::ssize_t y_,
const size_t width_,
const size_t height_,
std::string map_,
const StorageType type_ )
private

Definition at line 134 of file Pixels.cpp.

137{
138 size_t
139 size;
140
141 _data=(void *) NULL;
142 _length=0;
143 _size=0;
144 if ((x_ < 0) || (width_ == 0) || (y_ < 0) || (height_ == 0) ||
145 (x_ > (ssize_t) image_.columns()) || ((width_ + x_) > image_.columns())
146 || (y_ > (ssize_t) image_.rows()) || ((height_ + y_) > image_.rows())
147 || (map_.length() == 0))
148 return;
149
150 switch(type_)
151 {
152 case CharPixel:
153 size=sizeof(unsigned char);
154 break;
155 case DoublePixel:
156 size=sizeof(double);
157 break;
158 case FloatPixel:
159 size=sizeof(float);
160 break;
161 case IntegerPixel:
162 case LongPixel:
163 size=sizeof(unsigned int);
164 break;
165 case QuantumPixel:
166 size=sizeof(Quantum);
167 break;
168 case ShortPixel:
169 size=sizeof(unsigned short);
170 break;
171 default:
172 throwExceptionExplicit(OptionError,"Invalid type");
173 return;
174 }
175
176 _length=width_*height_*map_.length();
177 _size=_length*size;
178 _data=AcquireMagickMemory(_size);
179
180 GetPPException;
181 MagickCore::ExportImagePixels(image_.constImage(),x_,y_,width_,height_,
182 map_.c_str(),type_,_data,exceptionInfo);
183 if (exceptionInfo->severity != UndefinedException)
184 relinquish();
185 ThrowPPException(image_.quiet());
186}

◆ length()

ssize_t Magick::PixelData::length ( void ) const

Definition at line 124 of file Pixels.cpp.

125{
126 return(_length);
127}

◆ relinquish()

void Magick::PixelData::relinquish ( void )
throw ( )
private

Definition at line 188 of file Pixels.cpp.

189{
190 if (_data != (void *)NULL)
191 _data=RelinquishMagickMemory(_data);
192 _length=0;
193 _size=0;
194}

◆ size()

ssize_t Magick::PixelData::size ( void ) const

Definition at line 129 of file Pixels.cpp.

130{
131 return(_size);
132}

Member Data Documentation

◆ _data

void* Magick::PixelData::_data
private

Definition at line 114 of file Pixels.h.

◆ _length

::ssize_t Magick::PixelData::_length
private

Definition at line 115 of file Pixels.h.

◆ _size

::ssize_t Magick::PixelData::_size
private

Definition at line 116 of file Pixels.h.


The documentation for this class was generated from the following files: