13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy// This may look like C code, but it is really -*- C++ -*- 23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy// 33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003 4b6f009f769ad7a6ca2c83d00e06565e64fc65aaddirk// Copyright Dirk Lemstra 2013-2016 53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy// 63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy// Implementation of Image 73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy// 83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define MAGICKCORE_IMPLEMENTATION 1 103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define MAGICK_PLUSPLUS_IMPLEMENTATION 1 113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12d4774283661e770ee52d54a7199b7c4d38208c35cristy#include "Magick++/Include.h" 133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <cstdlib> 143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <string> 153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <string.h> 163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <errno.h> 173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include <math.h> 183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 193ed852eea50f9d4cd633efb8c2b054b8e33c253cristyusing namespace std; 203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include "Magick++/Image.h" 223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include "Magick++/Functions.h" 233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include "Magick++/Pixels.h" 243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include "Magick++/Options.h" 253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#include "Magick++/ImageRef.h" 263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define AbsoluteValue(x) ((x) < 0 ? -(x) : (x)) 28830e974c2864362a20c44c4a6e915b523cb56c66cristy#define MagickPI 3.14159265358979323846264338327950288419716939937510 293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#define DegreesToRadians(x) (MagickPI*(x)/180.0) 3007f84e72b205d18eb8ad35380af95351d9f0a1a3dirk#define ThrowImageException ThrowPPException(quiet()) 313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 321940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport const char *Magick::borderGeometryDefault="6x6+0+0"; 331940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport const char *Magick::frameGeometryDefault="25x25+6+6"; 341940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport const char *Magick::raiseGeometryDefault="6x6+0+0"; 353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 361940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport int Magick::operator == (const Magick::Image &left_, 371940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Image &right_) 383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy // If image pixels and signature are the same, then the image is identical 401940fe06f035ea32a4ec4df61f6897396877aa3cdirk return((left_.rows() == right_.rows()) && 411940fe06f035ea32a4ec4df61f6897396877aa3cdirk (left_.columns() == right_.columns()) && 421940fe06f035ea32a4ec4df61f6897396877aa3cdirk (left_.signature() == right_.signature())); 433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 441940fe06f035ea32a4ec4df61f6897396877aa3cdirk 451940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport int Magick::operator != (const Magick::Image &left_, 461940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Image &right_) 473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 481940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(!(left_ == right_)); 493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 501940fe06f035ea32a4ec4df61f6897396877aa3cdirk 511940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport int Magick::operator > (const Magick::Image &left_, 521940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Image &right_) 533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 541940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(!(left_ < right_) && (left_ != right_)); 553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 561940fe06f035ea32a4ec4df61f6897396877aa3cdirk 571940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport int Magick::operator < (const Magick::Image &left_, 581940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Image &right_) 593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy // If image pixels are less, then image is smaller 611940fe06f035ea32a4ec4df61f6897396877aa3cdirk return((left_.rows() * left_.columns()) < 621940fe06f035ea32a4ec4df61f6897396877aa3cdirk (right_.rows() * right_.columns())); 633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 641940fe06f035ea32a4ec4df61f6897396877aa3cdirk 651940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport int Magick::operator >= (const Magick::Image &left_, 661940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Image &right_) 673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 681940fe06f035ea32a4ec4df61f6897396877aa3cdirk return((left_ > right_) || (left_ == right_)); 693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 701940fe06f035ea32a4ec4df61f6897396877aa3cdirk 711940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickPPExport int Magick::operator <= (const Magick::Image &left_, 721940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Image &right_) 733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 741940fe06f035ea32a4ec4df61f6897396877aa3cdirk return((left_ < right_) || ( left_ == right_)); 753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 771940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(void) 7807f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 801940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 821940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Blob &blob_) 8307f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 841940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy try 861940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 871940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Initialize, Allocate and Read images 88e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 891940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_); 90e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 911940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 92e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch (const Error&) 931940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 941940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 951940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 961940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 971940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1001940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Blob &blob_,const Geometry &size_) 10107f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 1023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy try 1041940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1051940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Read from Blob 106e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 1071940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_, size_); 108e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 1091940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 110e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 1111940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1121940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 1131940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 1141940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 1151940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 1163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 1173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1181940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Blob &blob_,const Geometry &size_, 1191940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t depth_) 12007f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 1213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy try 1231940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1241940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Read from Blob 125e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 1261940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_,size_,depth_); 127e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 1281940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 129e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 1301940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1311940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 1321940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 1331940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 1341940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 1353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 1363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1371940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Blob &blob_,const Geometry &size_, 1381940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t depth_,const std::string &magick_) 13907f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 1403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy try 1421940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1431940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Read from Blob 144e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 1451940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_,size_,depth_,magick_); 146e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 1471940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 148e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 1491940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1501940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 1511940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 1521940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 1531940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 1543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 1553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1561940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Blob &blob_,const Geometry &size_, 1571940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &magick_) 15807f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 1593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy try 1611940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1621940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Read from Blob 163e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 1641940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_,size_,magick_); 165e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 1661940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 167e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 1681940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1691940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 1701940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 1711940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 1721940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 1733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 1743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1751940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Geometry &size_,const Color &color_) 17607f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 1773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1783c65c4f062b27f5c5f668e009716bdddf2adf947dirk // xc: prefix specifies an X11 color string 1793c65c4f062b27f5c5f668e009716bdddf2adf947dirk std::string imageSpec("xc:"); 1803c65c4f062b27f5c5f668e009716bdddf2adf947dirk imageSpec+=color_; 1811940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18240b3ec0ac359dc0c09d0a1bc28b809bb859cada2dirk try 18340b3ec0ac359dc0c09d0a1bc28b809bb859cada2dirk { 184e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 1853c65c4f062b27f5c5f668e009716bdddf2adf947dirk // Set image size 1863c65c4f062b27f5c5f668e009716bdddf2adf947dirk size(size_); 1873c65c4f062b27f5c5f668e009716bdddf2adf947dirk 1883c65c4f062b27f5c5f668e009716bdddf2adf947dirk // Initialize, Allocate and Read images 1893c65c4f062b27f5c5f668e009716bdddf2adf947dirk read(imageSpec); 190e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 1911940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 192e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 1931940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1941940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 1951940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 1961940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 1971940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 1981940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 1991940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2001940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const Image &image_) 20107f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(image_._imgRef) 2021940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 203debd02e3cb441e34f5b63bbfbf69e404f8135159dirk _imgRef->increase(); 2043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 206fae20619a47497056073e51720a3517d387cc7dedirkMagick::Image::Image(const Image &image_,const Geometry &geometry_) 207fae20619a47497056073e51720a3517d387cc7dedirk : _imgRef(new ImageRef) 208fae20619a47497056073e51720a3517d387cc7dedirk{ 209fae20619a47497056073e51720a3517d387cc7dedirk const RectangleInfo 210fae20619a47497056073e51720a3517d387cc7dedirk geometry=geometry_; 211fae20619a47497056073e51720a3517d387cc7dedirk 212fae20619a47497056073e51720a3517d387cc7dedirk OffsetInfo 213fae20619a47497056073e51720a3517d387cc7dedirk offset; 214fae20619a47497056073e51720a3517d387cc7dedirk 215fae20619a47497056073e51720a3517d387cc7dedirk MagickCore::Image 216fae20619a47497056073e51720a3517d387cc7dedirk *image; 217fae20619a47497056073e51720a3517d387cc7dedirk 218fae20619a47497056073e51720a3517d387cc7dedirk GetPPException; 219fae20619a47497056073e51720a3517d387cc7dedirk image=CloneImage(image_.constImage(),geometry_.width(),geometry_.height(), 220fae20619a47497056073e51720a3517d387cc7dedirk MagickTrue,exceptionInfo); 221fae20619a47497056073e51720a3517d387cc7dedirk replaceImage(image); 222fae20619a47497056073e51720a3517d387cc7dedirk _imgRef->options(new Options(*image_.constOptions())); 223fae20619a47497056073e51720a3517d387cc7dedirk offset.x=0; 224fae20619a47497056073e51720a3517d387cc7dedirk offset.y=0; 225fae20619a47497056073e51720a3517d387cc7dedirk (void) CopyImagePixels(image,image_.constImage(),&geometry,&offset, 226fae20619a47497056073e51720a3517d387cc7dedirk exceptionInfo); 227fae20619a47497056073e51720a3517d387cc7dedirk ThrowImageException; 228fae20619a47497056073e51720a3517d387cc7dedirk} 229fae20619a47497056073e51720a3517d387cc7dedirk 2301940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const size_t width_,const size_t height_, 2311940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &map_,const StorageType type_,const void *pixels_) 23207f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 2333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 2343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy try 2351940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 236e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 2371940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(width_,height_,map_.c_str(),type_,pixels_); 238e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 2391940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 240e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 2411940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 2421940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 2431940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 2441940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 2451940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 2463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2481940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(const std::string &imageSpec_) 24907f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef) 2503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 2511940fe06f035ea32a4ec4df61f6897396877aa3cdirk try 2521940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 2531940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Initialize, Allocate and Read images 254e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(true); 2551940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(imageSpec_); 256e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk quiet(false); 2571940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 258e46e7ddcef0f1b6472b1a643c46ba2b2b4fcb929dirk catch(const Error&) 2591940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 2601940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Release resources 2611940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 2621940fe06f035ea32a4ec4df61f6897396877aa3cdirk throw; 2631940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 2643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2663ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagick::Image::~Image() 2673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 268debd02e3cb441e34f5b63bbfbf69e404f8135159dirk if (_imgRef->decrease() == 0) 2691940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 2701940fe06f035ea32a4ec4df61f6897396877aa3cdirk 271debd02e3cb441e34f5b63bbfbf69e404f8135159dirk _imgRef=(Magick::ImageRef *) NULL; 2721940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 2731940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2741940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image& Magick::Image::operator=(const Magick::Image &image_) 2751940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 276debd02e3cb441e34f5b63bbfbf69e404f8135159dirk if (this != &image_) 2773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 278debd02e3cb441e34f5b63bbfbf69e404f8135159dirk image_._imgRef->increase(); 279debd02e3cb441e34f5b63bbfbf69e404f8135159dirk if (_imgRef->decrease() == 0) 280debd02e3cb441e34f5b63bbfbf69e404f8135159dirk delete _imgRef; 2811940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2821940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Use new image reference 2831940fe06f035ea32a4ec4df61f6897396877aa3cdirk _imgRef=image_._imgRef; 2843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 2851940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(*this); 2867323460d5cd42b6e10481f8fdbbdab7237cffab7dirk} 2877323460d5cd42b6e10481f8fdbbdab7237cffab7dirk 2881940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::adjoin(const bool flag_) 2891940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 2901940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 2911940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->adjoin(flag_); 2927323460d5cd42b6e10481f8fdbbdab7237cffab7dirk} 2937323460d5cd42b6e10481f8fdbbdab7237cffab7dirk 2941940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::adjoin(void) const 2953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 2961940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->adjoin()); 2973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 2983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::alpha(const bool matteFlag_) 3003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3011940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 3021940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3031940fe06f035ea32a4ec4df61f6897396877aa3cdirk // If matte channel is requested, but image doesn't already have a 3041940fe06f035ea32a4ec4df61f6897396877aa3cdirk // matte channel, then create an opaque matte channel. Likewise, if 3051940fe06f035ea32a4ec4df61f6897396877aa3cdirk // the image already has a matte channel but a matte channel is not 3061940fe06f035ea32a4ec4df61f6897396877aa3cdirk // desired, then set the matte channel to opaque. 3071940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3081940fe06f035ea32a4ec4df61f6897396877aa3cdirk if ((matteFlag_ && !constImage()->alpha_trait) || 3091940fe06f035ea32a4ec4df61f6897396877aa3cdirk (constImage()->alpha_trait && !matteFlag_)) 310e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageAlpha(image(),OpaqueAlpha,exceptionInfo); 31177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 3121940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3131940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->alpha_trait=matteFlag_ ? BlendPixelTrait : UndefinedPixelTrait; 3143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 3153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3161940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::alpha(void) const 3173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3181940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (constImage()->alpha_trait == BlendPixelTrait) 3191940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(true); 3201940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 3211940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(false); 3223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 3233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3241940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::alphaColor(const Color &alphaColor_) 3253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3261940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 327092a8ea1959d818804462ea79231863dc2e3fd26dirk 3281940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (alphaColor_.isValid()) 3291940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 330b797b2c96f796f4920c9ee807dc5f47e6f160418dirk image()->alpha_color=alphaColor_; 331b797b2c96f796f4920c9ee807dc5f47e6f160418dirk options()->alphaColor(alphaColor_); 3321940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 3331940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 3341940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 3351940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Set to default matte color 3361940fe06f035ea32a4ec4df61f6897396877aa3cdirk Color tmpColor("#BDBDBD"); 337b797b2c96f796f4920c9ee807dc5f47e6f160418dirk image()->alpha_color=tmpColor; 338b797b2c96f796f4920c9ee807dc5f47e6f160418dirk options()->alphaColor(tmpColor); 3391940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 3401940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 341092a8ea1959d818804462ea79231863dc2e3fd26dirk 3421940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::alphaColor(void) const 3431940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 344b797b2c96f796f4920c9ee807dc5f47e6f160418dirk return(Color(constImage()->alpha_color)); 3453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 3463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3471940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::animationDelay(const size_t delay_) 3483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3491940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 3501940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->delay=delay_; 3513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 352f27731d206fb6b9b791c0964837f85fa85883ed2dirk 3531940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::animationDelay(void) const 3543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3551940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->delay); 3563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 357f27731d206fb6b9b791c0964837f85fa85883ed2dirk 3581940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::animationIterations(const size_t iterations_) 3593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 3611940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->iterations=iterations_; 3621940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 3633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3641940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::animationIterations(void) const 3651940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3661940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->iterations); 3673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 368f27731d206fb6b9b791c0964837f85fa85883ed2dirk 369019efc8c2270c29096a4c8975cde80a84da06ba0dirkvoid Magick::Image::attenuate(const double attenuate_) 370019efc8c2270c29096a4c8975cde80a84da06ba0dirk{ 371019efc8c2270c29096a4c8975cde80a84da06ba0dirk char 372151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy value[MagickPathExtent]; 373019efc8c2270c29096a4c8975cde80a84da06ba0dirk 374019efc8c2270c29096a4c8975cde80a84da06ba0dirk modifyImage(); 375151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy FormatLocaleString(value,MagickPathExtent,"%.20g",attenuate_); 376019efc8c2270c29096a4c8975cde80a84da06ba0dirk (void) SetImageArtifact(image(),"attenuate",value); 377019efc8c2270c29096a4c8975cde80a84da06ba0dirk} 378019efc8c2270c29096a4c8975cde80a84da06ba0dirk 3791940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::backgroundColor(const Color &backgroundColor_) 3803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 3823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3831940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (backgroundColor_.isValid()) 3841940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->background_color=backgroundColor_; 3851940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 3861940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->background_color=Color(); 3873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3881940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->backgroundColor(backgroundColor_); 3891940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 3903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3911940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::backgroundColor(void) const 3921940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3931940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->backgroundColor()); 3943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 3953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3961940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::backgroundTexture(const std::string &backgroundTexture_) 397b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy{ 398b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy modifyImage(); 3991940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->backgroundTexture(backgroundTexture_); 400b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy} 401b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy 4021940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::backgroundTexture(void) const 403b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy{ 4041940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->backgroundTexture()); 405b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy} 406b5e877bd8701bc3f0ac1e9a3679a6cee64c69674cristy 4071940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::baseColumns(void) const 408ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk{ 4091940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->magick_columns); 410ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk} 411ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk 4121940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::baseFilename(void) const 413ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk{ 4141940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(constImage()->magick_filename)); 415ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk} 416ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk 4171940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::baseRows(void) const 418ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk{ 4191940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->magick_rows); 420ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk} 421ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk 42249dfa4460aa3429cf739805478df9872ca5e2136dirkvoid Magick::Image::blackPointCompensation(const bool flag_) 42349dfa4460aa3429cf739805478df9872ca5e2136dirk{ 42449dfa4460aa3429cf739805478df9872ca5e2136dirk image()->black_point_compensation=(MagickBooleanType) flag_; 42549dfa4460aa3429cf739805478df9872ca5e2136dirk} 42649dfa4460aa3429cf739805478df9872ca5e2136dirk 42749dfa4460aa3429cf739805478df9872ca5e2136dirkbool Magick::Image::blackPointCompensation(void) const 42849dfa4460aa3429cf739805478df9872ca5e2136dirk{ 42949dfa4460aa3429cf739805478df9872ca5e2136dirk return(static_cast<bool>(constImage()->black_point_compensation)); 43049dfa4460aa3429cf739805478df9872ca5e2136dirk} 43149dfa4460aa3429cf739805478df9872ca5e2136dirk 4321940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::borderColor(const Color &borderColor_) 433ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk{ 434ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk modifyImage(); 4351940fe06f035ea32a4ec4df61f6897396877aa3cdirk 4361940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (borderColor_.isValid()) 4371940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->border_color=borderColor_; 4381940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 4391940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->border_color=Color(); 4401940fe06f035ea32a4ec4df61f6897396877aa3cdirk 4411940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->borderColor(borderColor_); 442ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk} 443ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk 4441940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::borderColor(void) const 445ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk{ 4461940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->borderColor()); 447ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk} 448ff9693a0273bd1ff375da6d0488aa70ba7aa84bedirk 4491940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Geometry Magick::Image::boundingBox(void) const 450092a8ea1959d818804462ea79231863dc2e3fd26dirk{ 4511940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 4521940fe06f035ea32a4ec4df61f6897396877aa3cdirk bbox; 4531940fe06f035ea32a4ec4df61f6897396877aa3cdirk 4541940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 455e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk bbox=GetImageBoundingBox(constImage(),exceptionInfo); 45677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4571940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Geometry(bbox)); 458092a8ea1959d818804462ea79231863dc2e3fd26dirk} 459092a8ea1959d818804462ea79231863dc2e3fd26dirk 4601940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::boxColor(const Color &boxColor_) 461092a8ea1959d818804462ea79231863dc2e3fd26dirk{ 462092a8ea1959d818804462ea79231863dc2e3fd26dirk modifyImage(); 4631940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->boxColor(boxColor_); 464092a8ea1959d818804462ea79231863dc2e3fd26dirk} 465092a8ea1959d818804462ea79231863dc2e3fd26dirk 4661940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::boxColor(void) const 467f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 4681940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->boxColor()); 469f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 470f27731d206fb6b9b791c0964837f85fa85883ed2dirk 471f781e34db4b820ba9eacdc8aa04def9bf0cb599fdirkvoid Magick::Image::channelDepth(const ChannelType channel_, 472f781e34db4b820ba9eacdc8aa04def9bf0cb599fdirk const size_t depth_) 4733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 4741940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 4751940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4765fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 477e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageDepth(image(),depth_,exceptionInfo); 478f781e34db4b820ba9eacdc8aa04def9bf0cb599fdirk RestorePPChannelMask; 47977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 4813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 482f781e34db4b820ba9eacdc8aa04def9bf0cb599fdirksize_t Magick::Image::channelDepth(const ChannelType channel_) 4833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 4841940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 4851940fe06f035ea32a4ec4df61f6897396877aa3cdirk channel_depth; 4861940fe06f035ea32a4ec4df61f6897396877aa3cdirk 4871940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4885fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 489e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk channel_depth=GetImageDepth(constImage(),exceptionInfo); 490f781e34db4b820ba9eacdc8aa04def9bf0cb599fdirk RestorePPChannelMask; 49177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4921940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(channel_depth); 4933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 4943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4951940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::channels() const 496f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 4971940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->number_channels); 498f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 499f27731d206fb6b9b791c0964837f85fa85883ed2dirk 5001940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::classType(const ClassType class_) 501f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 5021940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (classType() == PseudoClass && class_ == DirectClass) 5031940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 5041940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Use SyncImage to synchronize the DirectClass pixels with the 5051940fe06f035ea32a4ec4df61f6897396877aa3cdirk // color map and then set to DirectClass type. 5061940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 5071940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 508e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SyncImage(image(),exceptionInfo); 50977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 5101940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->colormap=(PixelInfo *)RelinquishMagickMemory(image()->colormap); 5111940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->storage_class=static_cast<MagickCore::ClassType>(DirectClass); 5121940fe06f035ea32a4ec4df61f6897396877aa3cdirk return; 5131940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 5141940fe06f035ea32a4ec4df61f6897396877aa3cdirk 5151940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (classType() == DirectClass && class_ == PseudoClass) 5161940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 5171940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Quantize to create PseudoClass color map 5181940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 5191940fe06f035ea32a4ec4df61f6897396877aa3cdirk quantizeColors(MaxColormapSize); 5201940fe06f035ea32a4ec4df61f6897396877aa3cdirk quantize(); 5211940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->storage_class=static_cast<MagickCore::ClassType>(PseudoClass); 5221940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 523f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 524f27731d206fb6b9b791c0964837f85fa85883ed2dirk 5251940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::ClassType Magick::Image::classType(void) const 5263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 5271940fe06f035ea32a4ec4df61f6897396877aa3cdirk return static_cast<Magick::ClassType>(constImage()->storage_class); 5283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 5293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 5301940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorFuzz(const double fuzz_) 5313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 5321940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 5331940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->fuzz=fuzz_; 5341940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->colorFuzz(fuzz_); 5353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 5363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 5371940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::colorFuzz(void) const 5383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 5391940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->colorFuzz()); 5403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 5413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 5421940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorMapSize(const size_t entries_) 543b32b90a7e1ee2275333589072c496b5f69e17feccristy{ 5441940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (entries_ >MaxColormapSize) 54577328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 5461940fe06f035ea32a4ec4df61f6897396877aa3cdirk "Colormap entries must not exceed MaxColormapSize"); 5471940fe06f035ea32a4ec4df61f6897396877aa3cdirk 548b32b90a7e1ee2275333589072c496b5f69e17feccristy modifyImage(); 5491940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 550e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) AcquireImageColormap(image(),entries_,exceptionInfo); 55177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 552b32b90a7e1ee2275333589072c496b5f69e17feccristy} 553b32b90a7e1ee2275333589072c496b5f69e17feccristy 5541940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::colorMapSize(void) const 555f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 5561940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!constImage()->colormap) 55777328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 55877328896b876314656427663695bc7b2c9be3f74dirk "Image does not contain a colormap"); 5591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 5601940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->colors); 561f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 562f27731d206fb6b9b791c0964837f85fa85883ed2dirk 5631940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorSpace(const ColorspaceType colorSpace_) 564f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 5651940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (image()->colorspace == colorSpace_) 5661940fe06f035ea32a4ec4df61f6897396877aa3cdirk return; 5671940fe06f035ea32a4ec4df61f6897396877aa3cdirk 568f27731d206fb6b9b791c0964837f85fa85883ed2dirk modifyImage(); 5691940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 570e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk TransformImageColorspace(image(),colorSpace_,exceptionInfo); 57177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 572d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk} 573d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk 5741940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::ColorspaceType Magick::Image::colorSpace(void) const 575d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk{ 5761940fe06f035ea32a4ec4df61f6897396877aa3cdirk return (constImage()->colorspace); 577d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk} 578d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk 5791940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorSpaceType(const ColorspaceType colorSpace_) 580d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk{ 581d561b30050e85b31ba71c5dc15cc3ab3af403e65dirk modifyImage(); 5821940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 583e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageColorspace(image(),colorSpace_,exceptionInfo); 58477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 5851940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->colorspaceType(colorSpace_); 586f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 587f27731d206fb6b9b791c0964837f85fa85883ed2dirk 5881940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::ColorspaceType Magick::Image::colorSpaceType(void) const 589f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 5901940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->colorspaceType()); 5911940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 5921940fe06f035ea32a4ec4df61f6897396877aa3cdirk 5931940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::columns(void) const 5941940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 5951940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->columns); 596f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 597f27731d206fb6b9b791c0964837f85fa85883ed2dirk 5981940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::comment(const std::string &comment_) 599f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 600f27731d206fb6b9b791c0964837f85fa85883ed2dirk modifyImage(); 6011940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 602e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageProperty(image(),"Comment",NULL,exceptionInfo); 6031940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (comment_.length() > 0) 604e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageProperty(image(),"Comment",comment_.c_str(),exceptionInfo); 60577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 606f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 607f27731d206fb6b9b791c0964837f85fa85883ed2dirk 6081940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::comment(void) const 6093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6101940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char 6111940fe06f035ea32a4ec4df61f6897396877aa3cdirk *value; 6123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6131940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 614e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk value=GetImageProperty(constImage(),"Comment",exceptionInfo); 61577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 6163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6171940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (value) 6181940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(value)); 619c8918bb2b224f642b06140506fa85a3703fa0748cristy 6201940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); // Intentionally no exception 621735e8949026149d7f9995c76630b7dd0eeb7801dcristy} 622735e8949026149d7f9995c76630b7dd0eeb7801dcristy 6231940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::compose(const CompositeOperator compose_) 6243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6251940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->compose=compose_; 62641c73241c91f5a5debf9380cdcff10f26aa04cc3dirk} 62741c73241c91f5a5debf9380cdcff10f26aa04cc3dirk 6281940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::CompositeOperator Magick::Image::compose(void) const 62941c73241c91f5a5debf9380cdcff10f26aa04cc3dirk{ 6301940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->compose); 63141c73241c91f5a5debf9380cdcff10f26aa04cc3dirk} 6323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6331940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::compressType(const CompressionType compressType_) 6343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 6361940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->compression=compressType_; 6371940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->compressType(compressType_); 6383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 639f27731d206fb6b9b791c0964837f85fa85883ed2dirk 6401940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::CompressionType Magick::Image::compressType(void) const 6413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6421940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->compression); 6433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 644f27731d206fb6b9b791c0964837f85fa85883ed2dirk 6451940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::debug(const bool flag_) 6463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 6481940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->debug(flag_); 6493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 6503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6511940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::debug(void) const 6523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6531940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->debug()); 6543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 6553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 656be1bbacaa9919aa3754e3abae43557be13669657dirkvoid Magick::Image::density(const Point &density_) 657f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 658f27731d206fb6b9b791c0964837f85fa85883ed2dirk modifyImage(); 6591940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->density(density_); 6601940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (density_.isValid()) 6611940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 662be1bbacaa9919aa3754e3abae43557be13669657dirk image()->resolution.x=density_.x(); 663be1bbacaa9919aa3754e3abae43557be13669657dirk if (density_.y() != 0.0) 664be1bbacaa9919aa3754e3abae43557be13669657dirk image()->resolution.y=density_.y(); 6651940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 666be1bbacaa9919aa3754e3abae43557be13669657dirk image()->resolution.y=density_.x(); 6671940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 6681940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 6691940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 6701940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Reset to default 671be1bbacaa9919aa3754e3abae43557be13669657dirk image()->resolution.x=0.0; 672be1bbacaa9919aa3754e3abae43557be13669657dirk image()->resolution.y=0.0; 6731940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 674f27731d206fb6b9b791c0964837f85fa85883ed2dirk} 675f27731d206fb6b9b791c0964837f85fa85883ed2dirk 676be1bbacaa9919aa3754e3abae43557be13669657dirkMagick::Point Magick::Image::density(void) const 677f27731d206fb6b9b791c0964837f85fa85883ed2dirk{ 6781940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (isValid()) 6791940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 6801940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 6811940fe06f035ea32a4ec4df61f6897396877aa3cdirk x_resolution=72, 6821940fe06f035ea32a4ec4df61f6897396877aa3cdirk y_resolution=72; 683f27731d206fb6b9b791c0964837f85fa85883ed2dirk 6841940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (constImage()->resolution.x > 0.0) 685be1bbacaa9919aa3754e3abae43557be13669657dirk x_resolution=constImage()->resolution.x; 6865e6be1e6a77c230e4a204fa9163d873104730c35cristy 6871940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (constImage()->resolution.y > 0.0) 688be1bbacaa9919aa3754e3abae43557be13669657dirk y_resolution=constImage()->resolution.y; 6891940fe06f035ea32a4ec4df61f6897396877aa3cdirk 690be1bbacaa9919aa3754e3abae43557be13669657dirk return(Point(x_resolution,y_resolution)); 691d1e1c2296e4765b36d6a008a07d1763ac876bf77cristy } 6923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6931940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->density()); 6943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 6953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 6961940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::depth(const size_t depth_) 6973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 6981940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 6991940fe06f035ea32a4ec4df61f6897396877aa3cdirk depth = depth_; 7001940fe06f035ea32a4ec4df61f6897396877aa3cdirk 7011940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (depth > MAGICKCORE_QUANTUM_DEPTH) 7021940fe06f035ea32a4ec4df61f6897396877aa3cdirk depth=MAGICKCORE_QUANTUM_DEPTH; 7033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7045fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk modifyImage(); 7051940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->depth=depth; 7061940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->depth(depth); 7075fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk} 7085fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 7091940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::depth(void) const 7103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7111940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->depth); 7123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7141940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::directory(void) const 7155fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk{ 7161940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (constImage()->directory) 7171940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(constImage()->directory)); 7181940fe06f035ea32a4ec4df61f6897396877aa3cdirk 71907f84e72b205d18eb8ad35380af95351d9f0a1a3dirk if (!quiet()) 72077328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::CorruptImageWarning, 72177328896b876314656427663695bc7b2c9be3f74dirk "Image does not contain a directory"); 7221940fe06f035ea32a4ec4df61f6897396877aa3cdirk 7231940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); 7245fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk} 7255fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 7261940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::endian(const Magick::EndianType endian_) 7273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7281940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 7291940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->endian(endian_); 7301940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->endian=endian_; 7313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7331940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::EndianType Magick::Image::endian(void) const 7343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7351940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->endian); 7363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7381940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::exifProfile(const Magick::Blob &exifProfile_) 7393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 7413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7421940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (exifProfile_.data() != 0) 7433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 7441940fe06f035ea32a4ec4df61f6897396877aa3cdirk StringInfo 7451940fe06f035ea32a4ec4df61f6897396877aa3cdirk *exif_profile; 7461940fe06f035ea32a4ec4df61f6897396877aa3cdirk 7471940fe06f035ea32a4ec4df61f6897396877aa3cdirk exif_profile=AcquireStringInfo(exifProfile_.length()); 7481940fe06f035ea32a4ec4df61f6897396877aa3cdirk SetStringInfoDatum(exif_profile,(unsigned char *) exifProfile_.data()); 7491940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 750e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SetImageProfile(image(),"exif",exif_profile,exceptionInfo); 7511940fe06f035ea32a4ec4df61f6897396877aa3cdirk exif_profile=DestroyStringInfo(exif_profile); 75277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 7533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 7543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7561940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Blob Magick::Image::exifProfile(void) const 7573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7581940fe06f035ea32a4ec4df61f6897396877aa3cdirk const StringInfo 7591940fe06f035ea32a4ec4df61f6897396877aa3cdirk *exif_profile; 7603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7611940fe06f035ea32a4ec4df61f6897396877aa3cdirk exif_profile=GetImageProfile(constImage(),"exif"); 7621940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (exif_profile == (StringInfo *) NULL) 7631940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob()); 7641940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob(GetStringInfoDatum(exif_profile), 7651940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetStringInfoLength(exif_profile))); 7661940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 7673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7681940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fileName(const std::string &fileName_) 7691940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 7701940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 7713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7721940fe06f035ea32a4ec4df61f6897396877aa3cdirk fileName_.copy(image()->filename,sizeof(image()->filename)-1); 7731940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->filename[fileName_.length()]=0; // Null terminate 7743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7751940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fileName(fileName_); 7763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7781940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::fileName(void) const 7798ae632dd5ba985b5cac535dd36e209795fbd52d8cristy{ 7801940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->fileName()); 7813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7831940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickCore::MagickSizeType Magick::Image::fileSize(void) const 7843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7851940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(GetBlobSize(constImage())); 7863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7881940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fillColor(const Magick::Color &fillColor_) 7895fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk{ 7905fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk modifyImage(); 7911940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fillColor(fillColor_); 7925fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk} 7935fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 7941940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::fillColor(void) const 7953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 7961940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->fillColor()); 7973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 7983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 7991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fillRule(const Magick::FillRule &fillRule_) 8003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 8021940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fillRule(fillRule_); 8033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8051940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::FillRule Magick::Image::fillRule(void) const 8063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8071940fe06f035ea32a4ec4df61f6897396877aa3cdirk return constOptions()->fillRule(); 8083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8101940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fillPattern(const Image &fillPattern_) 8113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 8131940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (fillPattern_.isValid()) 8141940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fillPattern(fillPattern_.constImage()); 8151940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 8161940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fillPattern(static_cast<MagickCore::Image*>(NULL)); 8178bf9e296bfe66c29544f41f760ce2ce00e311c70cristy} 8185fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 8191940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image Magick::Image::fillPattern(void) const 8208bf9e296bfe66c29544f41f760ce2ce00e311c70cristy{ 8211940fe06f035ea32a4ec4df61f6897396877aa3cdirk // FIXME: This is inordinately innefficient 8221940fe06f035ea32a4ec4df61f6897396877aa3cdirk const MagickCore::Image 8231940fe06f035ea32a4ec4df61f6897396877aa3cdirk *tmpTexture; 8245fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 8251940fe06f035ea32a4ec4df61f6897396877aa3cdirk Image 8261940fe06f035ea32a4ec4df61f6897396877aa3cdirk texture; 8274ee2b0c11849aca22cbc22f1fb48e3ee9c8eaba5cristy 8281940fe06f035ea32a4ec4df61f6897396877aa3cdirk tmpTexture=constOptions()->fillPattern(); 8295fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 8301940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (tmpTexture) 8311940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 8321940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 8331940fe06f035ea32a4ec4df61f6897396877aa3cdirk *image; 8341940fe06f035ea32a4ec4df61f6897396877aa3cdirk 8351940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 836e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk image=CloneImage(tmpTexture,0,0,MagickTrue,exceptionInfo); 8371940fe06f035ea32a4ec4df61f6897396877aa3cdirk texture.replaceImage(image); 83877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 8391940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 8401940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(texture); 8413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8438b9f21cab4c50eb7d6e558a7a43a68833fe0b55ddirkvoid Magick::Image::filterType(const Magick::FilterType filterType_) 8443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8451940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 8461940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->filter=filterType_; 8473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8498b9f21cab4c50eb7d6e558a7a43a68833fe0b55ddirkMagick::FilterType Magick::Image::filterType(void) const 8503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8511940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->filter); 8523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8535fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 8541940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::font(const std::string &font_) 8553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8561940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 8571940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->font(font_); 8583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8601940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::font(void) const 8613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8621940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->font()); 8633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8645fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 8656409f34d637a34a1c643632aa849371ec8b3b5a8dirkvoid Magick::Image::fontFamily(const std::string &family_) 8666409f34d637a34a1c643632aa849371ec8b3b5a8dirk{ 8676409f34d637a34a1c643632aa849371ec8b3b5a8dirk modifyImage(); 8686409f34d637a34a1c643632aa849371ec8b3b5a8dirk options()->fontFamily(family_); 8696409f34d637a34a1c643632aa849371ec8b3b5a8dirk} 8706409f34d637a34a1c643632aa849371ec8b3b5a8dirk 8716409f34d637a34a1c643632aa849371ec8b3b5a8dirkstd::string Magick::Image::fontFamily(void) const 8726409f34d637a34a1c643632aa849371ec8b3b5a8dirk{ 8736409f34d637a34a1c643632aa849371ec8b3b5a8dirk return(constOptions()->fontFamily()); 8746409f34d637a34a1c643632aa849371ec8b3b5a8dirk} 8756409f34d637a34a1c643632aa849371ec8b3b5a8dirk 8761940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fontPointsize(const double pointSize_) 8773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8781940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 8791940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fontPointsize(pointSize_); 8803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 8821940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::fontPointsize(void) const 8833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 8841940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->fontPointsize()); 8853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 8863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 88761ab4ad4628896f4b8a4dbc6a369a93c8696efcadirkvoid Magick::Image::fontStyle(const StyleType pointSize_) 88861ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk{ 88961ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk modifyImage(); 89061ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk options()->fontStyle(pointSize_); 89161ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk} 89261ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk 89361ab4ad4628896f4b8a4dbc6a369a93c8696efcadirkMagick::StyleType Magick::Image::fontStyle(void) const 89461ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk{ 89561ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk return(constOptions()->fontStyle()); 89661ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk} 89761ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk 89861ab4ad4628896f4b8a4dbc6a369a93c8696efcadirkvoid Magick::Image::fontWeight(const size_t weight_) 89961ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk{ 90061ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk modifyImage(); 90161ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk options()->fontWeight(weight_); 90261ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk} 90361ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk 90461ab4ad4628896f4b8a4dbc6a369a93c8696efcadirksize_t Magick::Image::fontWeight(void) const 90561ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk{ 90661ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk return(constOptions()->fontWeight()); 90761ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk} 90861ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk 9091940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::format(void) const 9103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 9111940fe06f035ea32a4ec4df61f6897396877aa3cdirk const MagickInfo 9121940fe06f035ea32a4ec4df61f6897396877aa3cdirk *magick_info; 9133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9141940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 915e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk magick_info=GetMagickInfo(constImage()->magick,exceptionInfo); 91677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 9173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9181940fe06f035ea32a4ec4df61f6897396877aa3cdirk if ((magick_info != 0) && (*magick_info->description != '\0')) 9191940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(magick_info->description)); 9201940fe06f035ea32a4ec4df61f6897396877aa3cdirk 92107f84e72b205d18eb8ad35380af95351d9f0a1a3dirk if (!quiet()) 92277328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::CorruptImageWarning, 92377328896b876314656427663695bc7b2c9be3f74dirk "Unrecognized image magick type"); 92477328896b876314656427663695bc7b2c9be3f74dirk 9251940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); 9263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 9275fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 928aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirkstd::string Magick::Image::formatExpression(const std::string expression) 929aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk{ 930aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk char 931aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk *text; 932aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk 93327b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk std::string 93427b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk text_string; 93527b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk 936aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk GetPPException; 937545c6e74469831406a445a1f63ea812e00a53378dirk modifyImage(); 938aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk text=InterpretImageProperties(imageInfo(),image(),expression.c_str(), 939e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 940aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk if (text != (char *) NULL) 94127b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk { 94227b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk text_string=std::string(text); 94327b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk text=DestroyString(text); 94427b3d9434825bdc0a92e2cc344b76d882aaaad5bdirk } 94577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 9467c8a6469e15f257d89ec465324a170713196e030cristy return(text_string); 947aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk} 948aefa9c18d4d9bdd46e7bf1e09ce1b3185312820edirk 9491940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::gamma(void) const 9503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 9511940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->gamma); 9523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 9533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9541940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Geometry Magick::Image::geometry(void) const 9553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 9561940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (constImage()->geometry) 9571940fe06f035ea32a4ec4df61f6897396877aa3cdirk return Geometry(constImage()->geometry); 9583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 95907f84e72b205d18eb8ad35380af95351d9f0a1a3dirk if (!quiet()) 96077328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionWarning, 96177328896b876314656427663695bc7b2c9be3f74dirk "Image does not contain a geometry"); 9623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9631940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Geometry()); 9643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 9655fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 9661940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::gifDisposeMethod( 9671940fe06f035ea32a4ec4df61f6897396877aa3cdirk const MagickCore::DisposeType disposeMethod_) 9683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 9691940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 9701940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->dispose=disposeMethod_; 9713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 9723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 9731940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickCore::DisposeType Magick::Image::gifDisposeMethod(void) const 9743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 9751940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->dispose); 9763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 9773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 978d873c4a941602fe7aad3a06900166a4da3eb56b8dirkbool Magick::Image::hasChannel(const PixelChannel channel) const 979d873c4a941602fe7aad3a06900166a4da3eb56b8dirk{ 98000ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk if (GetPixelChannelTraits(constImage(),channel) == UndefinedPixelTrait) 98100ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk return(false); 98200ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk 98300ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk if (channel == GreenPixelChannel || channel == BluePixelChannel) 98400ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk return (GetPixelChannelOffset(constImage(),channel) == (ssize_t)channel); 98500ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk 98600ac24b7dadc8fb5447c1b123bda8ff2379e905fdirk return(true); 987d873c4a941602fe7aad3a06900166a4da3eb56b8dirk} 988d873c4a941602fe7aad3a06900166a4da3eb56b8dirk 989019efc8c2270c29096a4c8975cde80a84da06ba0dirkvoid Magick::Image::highlightColor(const Color color_) 990019efc8c2270c29096a4c8975cde80a84da06ba0dirk{ 991019efc8c2270c29096a4c8975cde80a84da06ba0dirk std::string 992019efc8c2270c29096a4c8975cde80a84da06ba0dirk value; 993019efc8c2270c29096a4c8975cde80a84da06ba0dirk 994019efc8c2270c29096a4c8975cde80a84da06ba0dirk value=color_; 995019efc8c2270c29096a4c8975cde80a84da06ba0dirk artifact("highlight-color",value); 996019efc8c2270c29096a4c8975cde80a84da06ba0dirk} 997019efc8c2270c29096a4c8975cde80a84da06ba0dirk 9981940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::iccColorProfile(const Magick::Blob &colorProfile_) 9993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1000c8c6dd58a00653e32fedca951348992a1926606adirk profile("icc",colorProfile_); 10011940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 10023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 10031940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Blob Magick::Image::iccColorProfile(void) const 10043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 10051940fe06f035ea32a4ec4df61f6897396877aa3cdirk const StringInfo 10061940fe06f035ea32a4ec4df61f6897396877aa3cdirk *color_profile; 10073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 10081940fe06f035ea32a4ec4df61f6897396877aa3cdirk color_profile=GetImageProfile(constImage(),"icc"); 10091940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (color_profile == (StringInfo *) NULL) 10101940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob()); 10111940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob(GetStringInfoDatum(color_profile),GetStringInfoLength( 10121940fe06f035ea32a4ec4df61f6897396877aa3cdirk color_profile))); 10133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 10143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 10151940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::interlaceType(const Magick::InterlaceType interlace_) 1016c9550792cd47c57370cd82fef338304f9e576473cristy{ 10171940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 10181940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->interlace=interlace_; 10191940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->interlaceType(interlace_); 1020c9550792cd47c57370cd82fef338304f9e576473cristy} 10215fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 10221940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::InterlaceType Magick::Image::interlaceType(void) const 10233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 10241940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->interlace); 10253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 10263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1027f8c6db577bf34604c1b62d0ac8ae0a3010750493dirkvoid Magick::Image::interpolate(const PixelInterpolateMethod interpolate_) 1028f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk{ 1029f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk modifyImage(); 1030f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk image()->interpolate=interpolate_; 1031f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk} 1032f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk 1033f8c6db577bf34604c1b62d0ac8ae0a3010750493dirkMagick::PixelInterpolateMethod Magick::Image::interpolate(void) const 1034f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk{ 1035f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk return constImage()->interpolate; 1036f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk} 1037f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk 10381940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::iptcProfile(const Magick::Blob &iptcProfile_) 10393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 10403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 10411940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (iptcProfile_.data() != 0) 10421940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 10431940fe06f035ea32a4ec4df61f6897396877aa3cdirk StringInfo 10441940fe06f035ea32a4ec4df61f6897396877aa3cdirk *iptc_profile; 10451940fe06f035ea32a4ec4df61f6897396877aa3cdirk 10461940fe06f035ea32a4ec4df61f6897396877aa3cdirk iptc_profile=AcquireStringInfo(iptcProfile_.length()); 10471940fe06f035ea32a4ec4df61f6897396877aa3cdirk SetStringInfoDatum(iptc_profile,(unsigned char *) iptcProfile_.data()); 10481940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1049e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SetImageProfile(image(),"iptc",iptc_profile,exceptionInfo); 10501940fe06f035ea32a4ec4df61f6897396877aa3cdirk iptc_profile=DestroyStringInfo(iptc_profile); 105177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 10521940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 10533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 10543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 10551940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Blob Magick::Image::iptcProfile(void) const 10563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 10571940fe06f035ea32a4ec4df61f6897396877aa3cdirk const StringInfo 10581940fe06f035ea32a4ec4df61f6897396877aa3cdirk *iptc_profile; 10591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 10601940fe06f035ea32a4ec4df61f6897396877aa3cdirk iptc_profile=GetImageProfile(constImage(),"iptc"); 10611940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (iptc_profile == (StringInfo *) NULL) 10621940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob()); 10631940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob(GetStringInfoDatum(iptc_profile),GetStringInfoLength( 10641940fe06f035ea32a4ec4df61f6897396877aa3cdirk iptc_profile))); 10651940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 10663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1067fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirkbool Magick::Image::isOpaque(void) const 1068fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk{ 1069fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk MagickBooleanType 1070fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk result; 1071fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk 1072fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk GetPPException; 1073fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk result=IsImageOpaque(constImage(),exceptionInfo); 1074fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk ThrowImageException; 1075fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk return(result != MagickFalse ? true : false); 1076fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk} 1077fbb0a3f139d16789fc2bcaaa4a547ff9d931ee1cdirk 10781940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::isValid(const bool isValid_) 1079529fcc251289b181417ebc355b221dcaa91b1611cristy{ 10801940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!isValid_) 10811940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 10821940fe06f035ea32a4ec4df61f6897396877aa3cdirk delete _imgRef; 10831940fe06f035ea32a4ec4df61f6897396877aa3cdirk _imgRef=new ImageRef; 10841940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 10851940fe06f035ea32a4ec4df61f6897396877aa3cdirk else if (!isValid()) 10861940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 10871940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Construct with single-pixel black image to make 10881940fe06f035ea32a4ec4df61f6897396877aa3cdirk // image valid. This is an obvious hack. 10891940fe06f035ea32a4ec4df61f6897396877aa3cdirk size(Geometry(1,1)); 10901940fe06f035ea32a4ec4df61f6897396877aa3cdirk read("xc:black"); 10911940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 1092529fcc251289b181417ebc355b221dcaa91b1611cristy} 10935fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 10941940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::isValid(void) const 1095529fcc251289b181417ebc355b221dcaa91b1611cristy{ 10961940fe06f035ea32a4ec4df61f6897396877aa3cdirk return rows() && columns(); 10971940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 1098529fcc251289b181417ebc355b221dcaa91b1611cristy 10991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::label(const std::string &label_) 11001940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 11015fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk modifyImage(); 11021940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1103e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SetImageProperty(image(),"Label",NULL,exceptionInfo); 11041940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (label_.length() > 0) 1105e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SetImageProperty(image(),"Label",label_.c_str(),exceptionInfo); 110677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 11071940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 11085fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 11091940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::label(void) const 11101940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 11111940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char 11121940fe06f035ea32a4ec4df61f6897396877aa3cdirk *value; 11135fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 11141940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1115e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk value=GetImageProperty(constImage(),"Label",exceptionInfo); 111677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 11171940fe06f035ea32a4ec4df61f6897396877aa3cdirk 11181940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (value) 11191940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(value)); 11205fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 11211940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); 11225fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk} 11235fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 1124019efc8c2270c29096a4c8975cde80a84da06ba0dirkvoid Magick::Image::lowlightColor(const Color color_) 1125019efc8c2270c29096a4c8975cde80a84da06ba0dirk{ 1126019efc8c2270c29096a4c8975cde80a84da06ba0dirk std::string 1127019efc8c2270c29096a4c8975cde80a84da06ba0dirk value; 1128019efc8c2270c29096a4c8975cde80a84da06ba0dirk 1129019efc8c2270c29096a4c8975cde80a84da06ba0dirk value=color_; 1130019efc8c2270c29096a4c8975cde80a84da06ba0dirk artifact("lowlight-color",value); 1131019efc8c2270c29096a4c8975cde80a84da06ba0dirk} 1132019efc8c2270c29096a4c8975cde80a84da06ba0dirk 11331940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::magick(const std::string &magick_) 11345fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk{ 113549ccbc806b20f4892e6c8588768617afdfcee3cddirk size_t 113649ccbc806b20f4892e6c8588768617afdfcee3cddirk length; 113749ccbc806b20f4892e6c8588768617afdfcee3cddirk 11383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 11395fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 114049ccbc806b20f4892e6c8588768617afdfcee3cddirk length=sizeof(image()->magick)-1; 114149ccbc806b20f4892e6c8588768617afdfcee3cddirk if (magick_.length() < length) 114249ccbc806b20f4892e6c8588768617afdfcee3cddirk length=magick_.length(); 114349ccbc806b20f4892e6c8588768617afdfcee3cddirk 114449ccbc806b20f4892e6c8588768617afdfcee3cddirk if (!magick_.empty()) 114549ccbc806b20f4892e6c8588768617afdfcee3cddirk magick_.copy(image()->magick,length); 114649ccbc806b20f4892e6c8588768617afdfcee3cddirk image()->magick[length]=0; 114749ccbc806b20f4892e6c8588768617afdfcee3cddirk 11481940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->magick(magick_); 11491940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 11505fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 11511940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::magick(void) const 11521940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 11531940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (*(constImage()->magick) != '\0') 11541940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(constImage()->magick)); 11555fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 11561940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->magick()); 11571bab013cd87579204c8eb4671e3e658ef49d9aaadirk} 11581bab013cd87579204c8eb4671e3e658ef49d9aaadirk 11591940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::meanErrorPerPixel(void) const 11601bab013cd87579204c8eb4671e3e658ef49d9aaadirk{ 11611940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->error.mean_error_per_pixel); 11621bab013cd87579204c8eb4671e3e658ef49d9aaadirk} 11635fdc21a395951a7057e948e63ff9bb816ae4fc9cdirk 11641940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::modulusDepth(const size_t depth_) 11651bab013cd87579204c8eb4671e3e658ef49d9aaadirk{ 11661940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 11671940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1168e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageDepth(image(),depth_,exceptionInfo); 116977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 11701940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->depth(depth_); 11713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 11723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 11731940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::modulusDepth(void) const 11743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 11751940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 11761940fe06f035ea32a4ec4df61f6897396877aa3cdirk depth; 11771940fe06f035ea32a4ec4df61f6897396877aa3cdirk 11781940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1179e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk depth=GetImageDepth(constImage(),exceptionInfo); 118077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 11811940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(depth); 11823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 11833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 11841940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::monochrome(const bool monochromeFlag_) 11853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 11863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 11871940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->monochrome(monochromeFlag_); 11883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 11891bab013cd87579204c8eb4671e3e658ef49d9aaadirk 11901940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::monochrome(void) const 11913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 11921940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->monochrome()); 11933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 11943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 11951940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Geometry Magick::Image::montageGeometry(void) const 11963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 11971940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (constImage()->montage) 11981940fe06f035ea32a4ec4df61f6897396877aa3cdirk return Magick::Geometry(constImage()->montage); 11991940fe06f035ea32a4ec4df61f6897396877aa3cdirk 120007f84e72b205d18eb8ad35380af95351d9f0a1a3dirk if (!quiet()) 120177328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::CorruptImageWarning, 12021940fe06f035ea32a4ec4df61f6897396877aa3cdirk "Image does not contain a montage"); 12031940fe06f035ea32a4ec4df61f6897396877aa3cdirk 12041940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Geometry()); 1205a041706d555a780038f97211101cf8acb7f297d2cristy} 1206a041706d555a780038f97211101cf8acb7f297d2cristy 12071940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::normalizedMaxError(void) const 12083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12091940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->error.normalized_maximum_error); 12103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12121940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::normalizedMeanError(void) const 12133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12141940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->error.normalized_mean_error); 12151940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 12163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12171940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::orientation(const Magick::OrientationType orientation_) 12181940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 12193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 12201940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->orientation=orientation_; 12213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12231940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::OrientationType Magick::Image::orientation(void) const 12243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12251940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->orientation); 12263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12277b971978c41d6f824b7cd2ec3c0bc264c7581d7bdirk 12281940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::page(const Magick::Geometry &pageSize_) 12293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 12311940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->page(pageSize_); 12321940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->page=pageSize_; 12337b971978c41d6f824b7cd2ec3c0bc264c7581d7bdirk} 12347b971978c41d6f824b7cd2ec3c0bc264c7581d7bdirk 12351940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Geometry Magick::Image::page(void) const 12367b971978c41d6f824b7cd2ec3c0bc264c7581d7bdirk{ 12371940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Geometry(constImage()->page.width,constImage()->page.height, 1238cd27554467f87f94cd4b4880530239264e379467dirk constImage()->page.x,constImage()->page.y)); 12393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12411940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::quality(const size_t quality_) 12423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 12441940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->quality=quality_; 12451940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quality(quality_); 12463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12481940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::quality(void) const 12493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12501940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->quality); 12513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12531940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::quantizeColors(const size_t colors_) 12543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 12561940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeColors(colors_); 12573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12591940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::quantizeColors(void) const 12601bab013cd87579204c8eb4671e3e658ef49d9aaadirk{ 12611940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->quantizeColors()); 12621bab013cd87579204c8eb4671e3e658ef49d9aaadirk} 12631bab013cd87579204c8eb4671e3e658ef49d9aaadirk 12641940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::quantizeColorSpace( 12651940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::ColorspaceType colorSpace_) 1266c670e0adfb05f445e331c22c5115bf7bff0ef5b2dirk{ 1267c670e0adfb05f445e331c22c5115bf7bff0ef5b2dirk modifyImage(); 12681940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeColorSpace(colorSpace_); 1269c670e0adfb05f445e331c22c5115bf7bff0ef5b2dirk} 1270c670e0adfb05f445e331c22c5115bf7bff0ef5b2dirk 12711940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::ColorspaceType Magick::Image::quantizeColorSpace(void) const 12723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12731940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->quantizeColorSpace()); 12743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12761940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::quantizeDither(const bool ditherFlag_) 12773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 12781940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 12791940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeDither(ditherFlag_); 12803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 12813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 12821940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::quantizeDither(void) const 12831bab013cd87579204c8eb4671e3e658ef49d9aaadirk{ 12841940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->quantizeDither()); 12851bab013cd87579204c8eb4671e3e658ef49d9aaadirk} 12861bab013cd87579204c8eb4671e3e658ef49d9aaadirk 12876d64b3658c2fa7218fbc309b9c85e3ec4441310edirkvoid Magick::Image::quantizeDitherMethod(const DitherMethod ditherMethod_) 12886d64b3658c2fa7218fbc309b9c85e3ec4441310edirk{ 12896d64b3658c2fa7218fbc309b9c85e3ec4441310edirk modifyImage(); 12906d64b3658c2fa7218fbc309b9c85e3ec4441310edirk options()->quantizeDitherMethod(ditherMethod_); 12916d64b3658c2fa7218fbc309b9c85e3ec4441310edirk} 12926d64b3658c2fa7218fbc309b9c85e3ec4441310edirk 12936d64b3658c2fa7218fbc309b9c85e3ec4441310edirkMagickCore::DitherMethod Magick::Image::quantizeDitherMethod(void) const 12946d64b3658c2fa7218fbc309b9c85e3ec4441310edirk{ 12956d64b3658c2fa7218fbc309b9c85e3ec4441310edirk return(constOptions()->quantizeDitherMethod()); 12966d64b3658c2fa7218fbc309b9c85e3ec4441310edirk} 12976d64b3658c2fa7218fbc309b9c85e3ec4441310edirk 12981940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::quantizeTreeDepth(const size_t treeDepth_) 12991bab013cd87579204c8eb4671e3e658ef49d9aaadirk{ 13001bab013cd87579204c8eb4671e3e658ef49d9aaadirk modifyImage(); 13011940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeTreeDepth(treeDepth_); 13021bab013cd87579204c8eb4671e3e658ef49d9aaadirk} 13031bab013cd87579204c8eb4671e3e658ef49d9aaadirk 13041940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::quantizeTreeDepth() const 1305136e4f4cade2bbc8ac5f5a359e6f94e057c5b3b2dirk{ 13061940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->quantizeTreeDepth()); 1307136e4f4cade2bbc8ac5f5a359e6f94e057c5b3b2dirk} 1308136e4f4cade2bbc8ac5f5a359e6f94e057c5b3b2dirk 130977328896b876314656427663695bc7b2c9be3f74dirkvoid Magick::Image::quiet(const bool quiet_) 131077328896b876314656427663695bc7b2c9be3f74dirk{ 131107f84e72b205d18eb8ad35380af95351d9f0a1a3dirk modifyImage(); 131207f84e72b205d18eb8ad35380af95351d9f0a1a3dirk options()->quiet(quiet_); 131377328896b876314656427663695bc7b2c9be3f74dirk} 131477328896b876314656427663695bc7b2c9be3f74dirk 131577328896b876314656427663695bc7b2c9be3f74dirkbool Magick::Image::quiet(void) const 131677328896b876314656427663695bc7b2c9be3f74dirk{ 131707f84e72b205d18eb8ad35380af95351d9f0a1a3dirk return(constOptions()->quiet()); 131877328896b876314656427663695bc7b2c9be3f74dirk} 131977328896b876314656427663695bc7b2c9be3f74dirk 13201940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::renderingIntent( 13211940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::RenderingIntent renderingIntent_) 13223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 13241940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->rendering_intent=renderingIntent_; 13251940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 13263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13271940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::RenderingIntent Magick::Image::renderingIntent(void) const 13281940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 13291940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(static_cast<Magick::RenderingIntent>(constImage()->rendering_intent)); 13303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13321940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::resolutionUnits( 13331940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::ResolutionType resolutionUnits_) 13343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 13361940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->units=resolutionUnits_; 13371940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->resolutionUnits(resolutionUnits_); 13383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13401940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::ResolutionType Magick::Image::resolutionUnits(void) const 13413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1342cfc8b6dc5e4e97e865c5106b745dd73dc8df0109dirk return(static_cast<Magick::ResolutionType>(constImage()->units)); 13433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13451940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::rows(void) const 13463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13471940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->rows); 13483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13501940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::scene(const size_t scene_) 13513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 13531940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->scene=scene_; 13543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13561940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::scene(void) const 13571940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 13581940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->scene); 13593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13611940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::size(const Geometry &geometry_) 13623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13631940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 13641940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->size(geometry_); 13651940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->rows=geometry_.height(); 13661940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->columns=geometry_.width(); 13673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13691940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Geometry Magick::Image::size(void) const 13703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13711940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Geometry(constImage()->columns,constImage()->rows)); 13723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13741940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeAntiAlias(const bool flag_) 13753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13761940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 13771940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeAntiAlias(flag_); 13783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13801940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::strokeAntiAlias(void) const 13813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13821940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeAntiAlias()); 13833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13851940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeColor(const Magick::Color &strokeColor_) 13863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1387019efc8c2270c29096a4c8975cde80a84da06ba0dirk std::string 1388019efc8c2270c29096a4c8975cde80a84da06ba0dirk value; 1389019efc8c2270c29096a4c8975cde80a84da06ba0dirk 13901940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 13911940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeColor(strokeColor_); 1392019efc8c2270c29096a4c8975cde80a84da06ba0dirk value=strokeColor_; 1393019efc8c2270c29096a4c8975cde80a84da06ba0dirk artifact("stroke",value); 13943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 13953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 13961940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::strokeColor(void) const 13973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 13981940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeColor()); 13991940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 14003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14011940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeDashArray(const double *strokeDashArray_) 14023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14031940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 14041940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeDashArray(strokeDashArray_); 14051940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 14063884f69ac6f82e16fc379fb6c6521960c19045a2cristy 14071940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst double* Magick::Image::strokeDashArray(void) const 14081940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 14091940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeDashArray()); 14103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14121940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeDashOffset(const double strokeDashOffset_) 14133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14141940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 14151940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeDashOffset(strokeDashOffset_); 14163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14181940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::strokeDashOffset(void) const 14193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14201940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeDashOffset()); 14213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14231940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeLineCap(const Magick::LineCap lineCap_) 14243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14251940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 14261940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeLineCap(lineCap_); 14273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14291940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::LineCap Magick::Image::strokeLineCap(void) const 14303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14311940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeLineCap()); 14323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14341940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeLineJoin(const Magick::LineJoin lineJoin_) 14353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 14371940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeLineJoin(lineJoin_); 14383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14401940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::LineJoin Magick::Image::strokeLineJoin(void) const 14413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14421940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeLineJoin()); 14433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14451940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeMiterLimit(const size_t strokeMiterLimit_) 14463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 14481940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeMiterLimit(strokeMiterLimit_); 14493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14501940fe06f035ea32a4ec4df61f6897396877aa3cdirk 14511940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::strokeMiterLimit(void) const 14523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14531940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeMiterLimit()); 14543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14561940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokePattern(const Image &strokePattern_) 14573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 14591940fe06f035ea32a4ec4df61f6897396877aa3cdirk if(strokePattern_.isValid()) 14601940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokePattern(strokePattern_.constImage()); 14611940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 14621940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokePattern(static_cast<MagickCore::Image*>(NULL)); 14633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14651940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image Magick::Image::strokePattern(void) const 14663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 14671940fe06f035ea32a4ec4df61f6897396877aa3cdirk // FIXME: This is inordinately innefficient 14681940fe06f035ea32a4ec4df61f6897396877aa3cdirk const MagickCore::Image 14691940fe06f035ea32a4ec4df61f6897396877aa3cdirk *tmpTexture; 14701940fe06f035ea32a4ec4df61f6897396877aa3cdirk 14711940fe06f035ea32a4ec4df61f6897396877aa3cdirk Image 14721940fe06f035ea32a4ec4df61f6897396877aa3cdirk texture; 14733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 14741940fe06f035ea32a4ec4df61f6897396877aa3cdirk tmpTexture=constOptions()->strokePattern(); 14751940fe06f035ea32a4ec4df61f6897396877aa3cdirk 14761940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (tmpTexture) 14771940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 14781940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 14791940fe06f035ea32a4ec4df61f6897396877aa3cdirk *image; 14801940fe06f035ea32a4ec4df61f6897396877aa3cdirk 14811940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1482e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk image=CloneImage(tmpTexture,0,0,MagickTrue,exceptionInfo); 14831940fe06f035ea32a4ec4df61f6897396877aa3cdirk texture.replaceImage(image); 148477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 14851940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 14861940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(texture); 14873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14881940fe06f035ea32a4ec4df61f6897396877aa3cdirk 14891940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strokeWidth(const double strokeWidth_) 14903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1491019efc8c2270c29096a4c8975cde80a84da06ba0dirk char 1492151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy value[MagickPathExtent]; 1493019efc8c2270c29096a4c8975cde80a84da06ba0dirk 14943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 14951940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->strokeWidth(strokeWidth_); 1496151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy FormatLocaleString(value,MagickPathExtent,"%.20g",strokeWidth_); 1497019efc8c2270c29096a4c8975cde80a84da06ba0dirk (void) SetImageArtifact(image(),"strokewidth",value); 14983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 14991940fe06f035ea32a4ec4df61f6897396877aa3cdirk 15001940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::strokeWidth(void) const 15013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 15021940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->strokeWidth()); 15033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 15043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 15051940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::subImage(const size_t subImage_) 15063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 15071940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 15081940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->subImage(subImage_); 15093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 15103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 15111940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::subImage(void) const 15121940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 15131940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->subImage()); 15141940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 15153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 15161940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::subRange(const size_t subRange_) 15173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 15183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 15191940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->subRange(subRange_); 15203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 15211940fe06f035ea32a4ec4df61f6897396877aa3cdirk 15221940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::subRange(void) const 15233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 15241940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->subRange()); 15253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 15263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1527ea20b31c9b8d1a55b400559ae15760243dcb897fdirkvoid Magick::Image::textAntiAlias(const bool flag_) 1528ea20b31c9b8d1a55b400559ae15760243dcb897fdirk{ 1529ea20b31c9b8d1a55b400559ae15760243dcb897fdirk modifyImage(); 1530ea20b31c9b8d1a55b400559ae15760243dcb897fdirk options()->textAntiAlias(flag_); 1531ea20b31c9b8d1a55b400559ae15760243dcb897fdirk} 1532ea20b31c9b8d1a55b400559ae15760243dcb897fdirk 1533ea20b31c9b8d1a55b400559ae15760243dcb897fdirkbool Magick::Image::textAntiAlias(void) const 1534ea20b31c9b8d1a55b400559ae15760243dcb897fdirk{ 1535ea20b31c9b8d1a55b400559ae15760243dcb897fdirk return(constOptions()->textAntiAlias()); 1536ea20b31c9b8d1a55b400559ae15760243dcb897fdirk} 1537ea20b31c9b8d1a55b400559ae15760243dcb897fdirk 1538d37417692d7a7040aa854e493723e92fac1e3ae6dirkvoid Magick::Image::textDirection(DirectionType direction_) 1539d37417692d7a7040aa854e493723e92fac1e3ae6dirk{ 1540d37417692d7a7040aa854e493723e92fac1e3ae6dirk modifyImage(); 1541d37417692d7a7040aa854e493723e92fac1e3ae6dirk options()->textDirection(direction_); 1542d37417692d7a7040aa854e493723e92fac1e3ae6dirk} 1543d37417692d7a7040aa854e493723e92fac1e3ae6dirk 1544d37417692d7a7040aa854e493723e92fac1e3ae6dirkMagick::DirectionType Magick::Image::textDirection(void) const 1545d37417692d7a7040aa854e493723e92fac1e3ae6dirk{ 1546d37417692d7a7040aa854e493723e92fac1e3ae6dirk return(constOptions()->textDirection()); 1547d37417692d7a7040aa854e493723e92fac1e3ae6dirk} 1548d37417692d7a7040aa854e493723e92fac1e3ae6dirk 15491940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::textEncoding(const std::string &encoding_) 15503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 15513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 15521940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->textEncoding(encoding_); 15531940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 15541940fe06f035ea32a4ec4df61f6897396877aa3cdirk 15551940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::textEncoding(void) const 15561940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 15571940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->textEncoding()); 15583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 15591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 1560d37417692d7a7040aa854e493723e92fac1e3ae6dirkvoid Magick::Image::textGravity(GravityType gravity_) 1561d37417692d7a7040aa854e493723e92fac1e3ae6dirk{ 1562d37417692d7a7040aa854e493723e92fac1e3ae6dirk modifyImage(); 1563d37417692d7a7040aa854e493723e92fac1e3ae6dirk options()->textGravity(gravity_); 1564d37417692d7a7040aa854e493723e92fac1e3ae6dirk} 1565d37417692d7a7040aa854e493723e92fac1e3ae6dirk 1566d37417692d7a7040aa854e493723e92fac1e3ae6dirkMagick::GravityType Magick::Image::textGravity(void) const 1567d37417692d7a7040aa854e493723e92fac1e3ae6dirk{ 1568d37417692d7a7040aa854e493723e92fac1e3ae6dirk return(constOptions()->textGravity()); 1569d37417692d7a7040aa854e493723e92fac1e3ae6dirk} 1570d37417692d7a7040aa854e493723e92fac1e3ae6dirk 1571a424799a0e5bfd6d1b7941c044e067fbf18d319fdirkvoid Magick::Image::textInterlineSpacing(double spacing_) 1572a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk{ 1573a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk modifyImage(); 1574a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk options()->textInterlineSpacing(spacing_); 1575a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk} 1576a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk 1577a424799a0e5bfd6d1b7941c044e067fbf18d319fdirkdouble Magick::Image::textInterlineSpacing(void) const 1578a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk{ 1579a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk return(constOptions()->textInterlineSpacing()); 1580a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk} 1581a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk 1582a424799a0e5bfd6d1b7941c044e067fbf18d319fdirkvoid Magick::Image::textInterwordSpacing(double spacing_) 1583a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk{ 1584a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk modifyImage(); 1585a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk options()->textInterwordSpacing(spacing_); 1586a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk} 1587a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk 1588a424799a0e5bfd6d1b7941c044e067fbf18d319fdirkdouble Magick::Image::textInterwordSpacing(void) const 1589a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk{ 1590a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk return(constOptions()->textInterwordSpacing()); 1591a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk} 1592a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk 1593a424799a0e5bfd6d1b7941c044e067fbf18d319fdirkvoid Magick::Image::textKerning(double kerning_) 1594a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk{ 1595a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk modifyImage(); 1596a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk options()->textKerning(kerning_); 1597a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk} 1598a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk 1599a424799a0e5bfd6d1b7941c044e067fbf18d319fdirkdouble Magick::Image::textKerning(void) const 1600a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk{ 1601a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk return(constOptions()->textKerning()); 1602a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk} 1603a424799a0e5bfd6d1b7941c044e067fbf18d319fdirk 160461ab4ad4628896f4b8a4dbc6a369a93c8696efcadirkvoid Magick::Image::textUnderColor(const Color &underColor_) 160561ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk{ 160661ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk modifyImage(); 160761ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk options()->textUnderColor(underColor_); 160861ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk} 160961ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk 161061ab4ad4628896f4b8a4dbc6a369a93c8696efcadirkMagick::Color Magick::Image::textUnderColor(void) const 161161ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk{ 161261ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk return(constOptions()->textUnderColor()); 161361ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk} 161461ab4ad4628896f4b8a4dbc6a369a93c8696efcadirk 16151940fe06f035ea32a4ec4df61f6897396877aa3cdirksize_t Magick::Image::totalColors(void) const 16163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16171940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 16181940fe06f035ea32a4ec4df61f6897396877aa3cdirk colors; 16191940fe06f035ea32a4ec4df61f6897396877aa3cdirk 16201940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1621d826672d08aaeecacda6be051a8a8ccc15beef44dirk colors=GetNumberColors(constImage(),(FILE *) NULL,exceptionInfo); 162277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 16231940fe06f035ea32a4ec4df61f6897396877aa3cdirk return colors; 16243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16261940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transformRotation(const double angle_) 16273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 16291940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->transformRotation(angle_); 16303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 16321940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transformSkewX(const double skewx_) 16333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16341940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 16351940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->transformSkewX(skewx_); 16363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16381940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transformSkewY(const double skewy_) 16393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 16411940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->transformSkewY(skewy_); 16423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16431940fe06f035ea32a4ec4df61f6897396877aa3cdirk 16441940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::ImageType Magick::Image::type(void) const 16453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16464a07d11bbbb01375b560051558ebd6da597a15f9dirk if (constOptions()->type() != UndefinedType) 16474a07d11bbbb01375b560051558ebd6da597a15f9dirk return(constOptions()->type()); 1648ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk return(GetImageType(constImage())); 16493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16511940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::type(const Magick::ImageType type_) 16523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 16541940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->type(type_); 16551940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1656e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageType(image(),type_,exceptionInfo); 165777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 16583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16601940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::verbose(const bool verboseFlag_) 16611940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 16621940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 16631940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->verbose(verboseFlag_); 16641940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 16653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16661940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::verbose(void) const 16671940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 16681940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->verbose()); 16693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16711940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::virtualPixelMethod( 16721940fe06f035ea32a4ec4df61f6897396877aa3cdirk const VirtualPixelMethod virtualPixelMethod_) 16731940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 16741940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 16751940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1676e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageVirtualPixelMethod(image(),virtualPixelMethod_,exceptionInfo); 167777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 16783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16791940fe06f035ea32a4ec4df61f6897396877aa3cdirk 16801940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::VirtualPixelMethod Magick::Image::virtualPixelMethod(void) const 16813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16821940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(GetImageVirtualPixelMethod(constImage())); 16833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16851940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::x11Display(const std::string &display_) 16863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 16881940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->x11Display(display_); 16893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16901940fe06f035ea32a4ec4df61f6897396877aa3cdirk 16911940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::x11Display(void) const 16923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16931940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constOptions()->x11Display()); 16943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 16953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 16961940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::xResolution(void) const 16973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 16981940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->resolution.x); 16993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17011940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::yResolution(void) const 17023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17031940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(constImage()->resolution.y); 17043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17061940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::adaptiveBlur(const double radius_,const double sigma_) 17073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17081940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17091940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17101940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17111940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1712e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AdaptiveBlurImage(constImage(),radius_,sigma_,exceptionInfo); 17131940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 171477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 17153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17171940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::adaptiveResize(const Geometry &geometry_) 17183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17191940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17201940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17221940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 17231940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 17241940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 17251940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17261940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 17271940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=0, 17281940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=0; 17291940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17301940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 17311940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 17323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17331940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1734e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AdaptiveResizeImage(constImage(),width,height,exceptionInfo); 17351940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 173677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 17373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17381940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17391940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::adaptiveSharpen(const double radius_,const double sigma_) 17403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17411940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17421940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17431940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17441940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1745e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AdaptiveSharpenImage(constImage(),radius_,sigma_,exceptionInfo); 17461940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 174777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 17483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17501940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::adaptiveSharpenChannel(const ChannelType channel_, 17511940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double radius_,const double sigma_ ) 17523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17531940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17541940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17551940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17561940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 17575fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 1758e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AdaptiveSharpenImage(constImage(),radius_,sigma_,exceptionInfo); 17591940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 17601940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 176177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 17623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17641940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::adaptiveThreshold(const size_t width_,const size_t height_, 17657034a926a4332ea16c1026c4adf91ab6a6176c0ddirk const double bias_) 17663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17671940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17681940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17691940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17701940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17711940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1772b1461b0e2f9ba7fab579489eb3760eb6ef8f2386dirk newImage=AdaptiveThresholdImage(constImage(),width_,height_,bias_, 1773e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 17741940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 177577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 17763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17771940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17781940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::addNoise(const NoiseType noiseType_) 17793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17801940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17811940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17821940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17831940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1784e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AddNoiseImage(constImage(),noiseType_,1.0,exceptionInfo); 17851940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 178677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 17873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 17883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 17891940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::addNoiseChannel(const ChannelType channel_, 17901940fe06f035ea32a4ec4df61f6897396877aa3cdirk const NoiseType noiseType_) 17913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 17921940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 17931940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 17941940fe06f035ea32a4ec4df61f6897396877aa3cdirk 17951940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 17965fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 1797e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AddNoiseImage(constImage(),noiseType_,1.0,exceptionInfo); 17981940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 17991940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 180077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 18013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 18023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 18031940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::affineTransform(const DrawableAffine &affine_) 180400bcb8c08b29ab70e1d24a21ccfe8515baa2af6cdirk{ 18051940fe06f035ea32a4ec4df61f6897396877aa3cdirk AffineMatrix 18061940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine; 18071940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18081940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 18091940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 18101940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18111940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine.sx=affine_.sx(); 18121940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine.sy=affine_.sy(); 18131940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine.rx=affine_.rx(); 18141940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine.ry=affine_.ry(); 18151940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine.tx=affine_.tx(); 18161940fe06f035ea32a4ec4df61f6897396877aa3cdirk _affine.ty=affine_.ty(); 18171940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18181940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1819e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AffineTransformImage(constImage(),&_affine,exceptionInfo); 18201940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 182177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 182200bcb8c08b29ab70e1d24a21ccfe8515baa2af6cdirk} 182300bcb8c08b29ab70e1d24a21ccfe8515baa2af6cdirk 18241940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::alpha(const unsigned int alpha_) 18253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 18263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 18271940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1828e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageAlpha(image(),alpha_,exceptionInfo); 182977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 18303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 18311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18321940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::alphaChannel(AlphaChannelOption alphaOption_) 18333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 18341940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 18351940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1836e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageAlphaChannel(image(),alphaOption_,exceptionInfo); 183777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 18383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 18393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 18401940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::annotate(const std::string &text_, 18411940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Geometry &location_) 18421940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 18431940fe06f035ea32a4ec4df61f6897396877aa3cdirk annotate(text_,location_,NorthWestGravity,0.0); 18443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 18451940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18461940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::annotate(const std::string &text_, 18471940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Geometry &boundingArea_,const GravityType gravity_) 18483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 18491940fe06f035ea32a4ec4df61f6897396877aa3cdirk annotate(text_,boundingArea_,gravity_,0.0); 18503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 18513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 18521940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::annotate(const std::string &text_, 18531940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Geometry &boundingArea_,const GravityType gravity_, 18541940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double degrees_) 18553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 18561940fe06f035ea32a4ec4df61f6897396877aa3cdirk AffineMatrix 18571940fe06f035ea32a4ec4df61f6897396877aa3cdirk oaffine; 18581940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18591940fe06f035ea32a4ec4df61f6897396877aa3cdirk char 1860151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy boundingArea[MagickPathExtent]; 18611940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18621940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawInfo 18631940fe06f035ea32a4ec4df61f6897396877aa3cdirk *drawInfo; 18641940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 18661940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18671940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo=options()->drawInfo(); 18681c990ab80c6bd9e2781ad0940ed5022c9a6b5a86dirk drawInfo->text=DestroyString(drawInfo->text); 18691940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->text=const_cast<char *>(text_.c_str()); 18701c990ab80c6bd9e2781ad0940ed5022c9a6b5a86dirk drawInfo->geometry=DestroyString(drawInfo->geometry); 18711940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18721940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (boundingArea_.isValid()) 18731940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 18741940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (boundingArea_.width() == 0 || boundingArea_.height() == 0) 18751940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1876151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy FormatLocaleString(boundingArea,MagickPathExtent,"%+.20g%+.20g", 18771940fe06f035ea32a4ec4df61f6897396877aa3cdirk (double) boundingArea_.xOff(),(double) boundingArea_.yOff()); 18781940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 18791940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 18801940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 1881e11ddbd1db03b2672c50a072930f76d22848916bcristy (void) CopyMagickString(boundingArea, 1882151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy std::string(boundingArea_).c_str(), MagickPathExtent); 18831940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 18841940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->geometry=boundingArea; 18851940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 18861940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18871940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->gravity=gravity_; 18881940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18891940fe06f035ea32a4ec4df61f6897396877aa3cdirk oaffine=drawInfo->affine; 18901940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (degrees_ != 0.0) 18911940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 18921940fe06f035ea32a4ec4df61f6897396877aa3cdirk AffineMatrix 18931940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine, 18941940fe06f035ea32a4ec4df61f6897396877aa3cdirk current; 18951940fe06f035ea32a4ec4df61f6897396877aa3cdirk 18961940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.sx=1.0; 18971940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.rx=0.0; 18981940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.ry=0.0; 18991940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.sy=1.0; 19001940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.tx=0.0; 19011940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.ty=0.0; 19021940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19031940fe06f035ea32a4ec4df61f6897396877aa3cdirk current=drawInfo->affine; 19041940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.sx=cos(DegreesToRadians(fmod(degrees_,360.0))); 19051940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.rx=sin(DegreesToRadians(fmod(degrees_,360.0))); 19061940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.ry=(-sin(DegreesToRadians(fmod(degrees_,360.0)))); 19071940fe06f035ea32a4ec4df61f6897396877aa3cdirk affine.sy=cos(DegreesToRadians(fmod(degrees_,360.0))); 19081940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19091940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->affine.sx=current.sx*affine.sx+current.ry*affine.rx; 19101940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->affine.rx=current.rx*affine.sx+current.sy*affine.rx; 19111940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->affine.ry=current.sx*affine.ry+current.ry*affine.sy; 19121940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->affine.sy=current.rx*affine.ry+current.sy*affine.sy; 19131940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->affine.tx=current.sx*affine.tx+current.ry*affine.ty 19141940fe06f035ea32a4ec4df61f6897396877aa3cdirk +current.tx; 19151940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 19161940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19171940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1918e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk AnnotateImage(image(),drawInfo,exceptionInfo); 19191940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19201940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Restore original values 19211940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->affine=oaffine; 19221c990ab80c6bd9e2781ad0940ed5022c9a6b5a86dirk drawInfo->text=(char *) NULL; 19231c990ab80c6bd9e2781ad0940ed5022c9a6b5a86dirk drawInfo->geometry=(char *) NULL; 19241940fe06f035ea32a4ec4df61f6897396877aa3cdirk 192577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 19263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 19271940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19281940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::annotate(const std::string &text_, 19291940fe06f035ea32a4ec4df61f6897396877aa3cdirk const GravityType gravity_) 19303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 19311940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawInfo 19321940fe06f035ea32a4ec4df61f6897396877aa3cdirk *drawInfo; 19331940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19341940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 19351940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19361940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo=options()->drawInfo(); 1937614561dec61cab56935f3507af707a385f1697dadirk drawInfo->text=DestroyString(drawInfo->text); 19381940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->text=const_cast<char *>(text_.c_str()); 19391940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->gravity=gravity_; 19401940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19411940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1942e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk AnnotateImage(image(),drawInfo,exceptionInfo); 19431940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19441940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->gravity=NorthWestGravity; 1945614561dec61cab56935f3507af707a385f1697dadirk drawInfo->text=(char *) NULL; 19461940fe06f035ea32a4ec4df61f6897396877aa3cdirk 194777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 19483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 19493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 19501940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::artifact(const std::string &name_,const std::string &value_) 19513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 19523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 19531940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) SetImageArtifact(image(),name_.c_str(),value_.c_str()); 19543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 19551940fe06f035ea32a4ec4df61f6897396877aa3cdirk 1956100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirkstd::string Magick::Image::artifact(const std::string &name_) const 19573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 19581940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char 19591940fe06f035ea32a4ec4df61f6897396877aa3cdirk *value; 19601940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19611940fe06f035ea32a4ec4df61f6897396877aa3cdirk value=GetImageArtifact(constImage(),name_.c_str()); 19621940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (value) 19631940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(value)); 19641940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); 19653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 19663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 19671940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::attribute(const std::string name_,const std::string value_) 19683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 19691940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 19701940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1971e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SetImageProperty(image(),name_.c_str(),value_.c_str(),exceptionInfo); 197277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 19731940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 19743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1975100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirkstd::string Magick::Image::attribute(const std::string name_) const 19761940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 19771940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char 19781940fe06f035ea32a4ec4df61f6897396877aa3cdirk *value; 19791940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19801940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1981e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk value=GetImageProperty(constImage(),name_.c_str(),exceptionInfo); 198277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 19831940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19841940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (value) 19851940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(value)); 19861940fe06f035ea32a4ec4df61f6897396877aa3cdirk 19871940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); // Intentionally no exception 19883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 19893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 19901940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::autoGamma(void) 19913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 19923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 19931940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 1994e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SyncImageSettings(imageInfo(),image(),exceptionInfo); 1995e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) AutoGammaImage(image(),exceptionInfo); 199677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 19971940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 19983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 19991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::autoGammaChannel(const ChannelType channel_) 20001940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 20011940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 20021940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 20035fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2004e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SyncImageSettings(imageInfo(),image(),exceptionInfo); 2005e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) AutoGammaImage(image(),exceptionInfo); 20061940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 200777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 20091940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20101940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::autoLevel(void) 20113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 20121940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 20131940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2014e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) AutoLevelImage(image(),exceptionInfo); 201577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 20173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 20181940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::autoLevelChannel(const ChannelType channel_) 20193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 20203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 20211940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 20225fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2023e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) AutoLevelImage(image(),exceptionInfo); 20241940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 202577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 20271940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20281940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::autoOrient(void) 20293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 20301940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 20311940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 20321940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20331940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (image()->orientation == UndefinedOrientation || 20341940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->orientation == TopLeftOrientation) 20351940fe06f035ea32a4ec4df61f6897396877aa3cdirk return; 20361940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20371940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2038e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=AutoOrientImage(constImage(),image()->orientation,exceptionInfo); 20391940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 204077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 20423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 20431940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::blackThreshold(const std::string &threshold_) 20443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 20451940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 20461940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2047e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk BlackThresholdImage(image(),threshold_.c_str(),exceptionInfo); 204877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20491940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 20503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 20511940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::blackThresholdChannel(const ChannelType channel_, 20521940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &threshold_) 20531940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 20543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 20551940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 20565fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2057e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk BlackThresholdImage(image(),threshold_.c_str(),exceptionInfo); 20581940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 205977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20601940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 20613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 20621940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::blueShift(const double factor_) 20631940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 20641940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 20651940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 20663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 20671940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2068e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=BlueShiftImage(constImage(),factor_,exceptionInfo); 20691940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 207077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20711940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 20721940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20731940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::blur(const double radius_,const double sigma_) 20741940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 20751940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 20761940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 20771940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20781940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2079e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=BlurImage(constImage(),radius_,sigma_,exceptionInfo); 20801940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 208177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 20831940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20841940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::blurChannel(const ChannelType channel_, 20851940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double radius_,const double sigma_) 20863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 20871940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 20881940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 20893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 20901940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 20915fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2092e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=BlurImage(constImage(),radius_,sigma_,exceptionInfo); 20931940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 20941940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 209577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 20961940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 20971940fe06f035ea32a4ec4df61f6897396877aa3cdirk 20981940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::border(const Geometry &geometry_) 20991940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 21001940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 21011940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 21023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21031940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 21041940fe06f035ea32a4ec4df61f6897396877aa3cdirk borderInfo=geometry_; 21053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21061940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 21071940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=BorderImage(constImage(),&borderInfo,image()->compose, 2108e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 21091940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 211077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 21113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 21123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21131940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::brightnessContrast(const double brightness_, 21141940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double contrast_) 21153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 21161940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 21171940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2118e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk BrightnessContrastImage(image(),brightness_,contrast_,exceptionInfo); 211977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 21201940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 21213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21221940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::brightnessContrastChannel(const ChannelType channel_, 21231940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double brightness_,const double contrast_) 21241940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 21253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 21261940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 21275fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2128e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk BrightnessContrastImage(image(),brightness_,contrast_,exceptionInfo); 21291940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 213077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 2131064bae341824f86d5e0b4e0010084c7a358704d7dirk} 2132064bae341824f86d5e0b4e0010084c7a358704d7dirk 2133064bae341824f86d5e0b4e0010084c7a358704d7dirkvoid Magick::Image::cannyEdge(const double radius_,const double sigma_, 2134064bae341824f86d5e0b4e0010084c7a358704d7dirk const double lowerPercent_,const double upperPercent_) 2135064bae341824f86d5e0b4e0010084c7a358704d7dirk{ 2136064bae341824f86d5e0b4e0010084c7a358704d7dirk MagickCore::Image 2137064bae341824f86d5e0b4e0010084c7a358704d7dirk *newImage; 2138064bae341824f86d5e0b4e0010084c7a358704d7dirk 2139064bae341824f86d5e0b4e0010084c7a358704d7dirk modifyImage(); 2140064bae341824f86d5e0b4e0010084c7a358704d7dirk GetPPException; 2141064bae341824f86d5e0b4e0010084c7a358704d7dirk newImage=CannyEdgeImage(constImage(),radius_,sigma_,lowerPercent_, 2142e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk upperPercent_,exceptionInfo); 2143064bae341824f86d5e0b4e0010084c7a358704d7dirk replaceImage(newImage); 214477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 21451940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 21463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21471f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirkvoid Magick::Image::cdl(const std::string &cdl_) 21481f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk{ 21491f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk modifyImage(); 21501f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk GetPPException; 21511f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk (void) ColorDecisionListImage(image(),cdl_.c_str(),exceptionInfo); 21521f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk ThrowImageException; 21531f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk} 21541f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk 21551940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::channel(const ChannelType channel_) 21561940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 21571940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 21581940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 21593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21601940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2161e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SeparateImage(image(),channel_,exceptionInfo); 21621940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 216377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 21641940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 21653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21661940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::charcoal(const double radius_,const double sigma_) 21671940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 21681940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 21691940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 21703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21711940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2172e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=CharcoalImage(image(),radius_,sigma_,exceptionInfo); 21731940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 217477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 21753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 21761940fe06f035ea32a4ec4df61f6897396877aa3cdirk 21771940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::chop(const Geometry &geometry_) 21783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 21791940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 21801940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 21813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21821940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 21831940fe06f035ea32a4ec4df61f6897396877aa3cdirk chopInfo=geometry_; 21843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 21851940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2186e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ChopImage(image(),&chopInfo,exceptionInfo); 21871940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 218877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 21893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 21903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 219198e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaBluePrimary(const double x_,const double y_, 219298e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk const double z_) 21933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 219468f837b3e98e5cc19a4874ee606e6c6c88162e7acristy modifyImage(); 21951940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.blue_primary.x=x_; 21961940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.blue_primary.y=y_; 219798e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk image()->chromaticity.blue_primary.z=z_; 21983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 21991940fe06f035ea32a4ec4df61f6897396877aa3cdirk 220098e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaBluePrimary(double *x_,double *y_,double *z_) const 22013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22021940fe06f035ea32a4ec4df61f6897396877aa3cdirk *x_=constImage()->chromaticity.blue_primary.x; 22031940fe06f035ea32a4ec4df61f6897396877aa3cdirk *y_=constImage()->chromaticity.blue_primary.y; 220498e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk *z_=constImage()->chromaticity.blue_primary.z; 22053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 220798e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaGreenPrimary(const double x_,const double y_, 220898e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk const double z_) 22093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 22111940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.green_primary.x=x_; 22121940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.green_primary.y=y_; 221398e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk image()->chromaticity.green_primary.z=z_; 22143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22151940fe06f035ea32a4ec4df61f6897396877aa3cdirk 221698e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaGreenPrimary(double *x_,double *y_,double *z_) const 22173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22181940fe06f035ea32a4ec4df61f6897396877aa3cdirk *x_=constImage()->chromaticity.green_primary.x; 22191940fe06f035ea32a4ec4df61f6897396877aa3cdirk *y_=constImage()->chromaticity.green_primary.y; 222098e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk *z_=constImage()->chromaticity.green_primary.z; 22213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 222398e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaRedPrimary(const double x_,const double y_, 222498e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk const double z_) 22253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 22271940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.red_primary.x=x_; 22281940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.red_primary.y=y_; 222998e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk image()->chromaticity.red_primary.z=z_; 22303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 223298e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaRedPrimary(double *x_,double *y_,double *z_) const 22331940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 22341940fe06f035ea32a4ec4df61f6897396877aa3cdirk *x_=constImage()->chromaticity.red_primary.x; 22351940fe06f035ea32a4ec4df61f6897396877aa3cdirk *y_=constImage()->chromaticity.red_primary.y; 223698e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk *z_=constImage()->chromaticity.red_primary.z; 22373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 223998e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaWhitePoint(const double x_,const double y_, 224098e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk const double z_) 22413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22421940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 22431940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.white_point.x=x_; 22441940fe06f035ea32a4ec4df61f6897396877aa3cdirk image()->chromaticity.white_point.y=y_; 224598e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk image()->chromaticity.white_point.z=z_; 22463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 224898e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirkvoid Magick::Image::chromaWhitePoint(double *x_,double *y_,double *z_) const 22493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22501940fe06f035ea32a4ec4df61f6897396877aa3cdirk *x_=constImage()->chromaticity.white_point.x; 22511940fe06f035ea32a4ec4df61f6897396877aa3cdirk *y_=constImage()->chromaticity.white_point.y; 225298e4a9ab93295eb5a3db74ccf3e4e905c98b8f0edirk *z_=constImage()->chromaticity.white_point.z; 22533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 22551940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::clamp(void) 22563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22571940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 22581940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2259e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ClampImage(image(),exceptionInfo); 226077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 22613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 22631940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::clampChannel(const ChannelType channel_) 22643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 22661940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 22675fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2268e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ClampImage(image(),exceptionInfo); 22691940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 227077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 22713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22721940fe06f035ea32a4ec4df61f6897396877aa3cdirk 22731940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::clip(void) 22743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22751940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 22761940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2277e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ClipImage(image(),exceptionInfo); 227877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 22793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 22811940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::clipPath(const std::string pathname_,const bool inside_) 22823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 22841940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 22851940fe06f035ea32a4ec4df61f6897396877aa3cdirk ClipImagePath(image(),pathname_.c_str(),(MagickBooleanType) inside_, 2286e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 228777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 22883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22891940fe06f035ea32a4ec4df61f6897396877aa3cdirk 22901940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::clut(const Image &clutImage_, 22911940fe06f035ea32a4ec4df61f6897396877aa3cdirk const PixelInterpolateMethod method) 22923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 22931940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 22941940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2295e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ClutImage(image(),clutImage_.constImage(),method,exceptionInfo); 229677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 22973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 22983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 22991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::clutChannel(const ChannelType channel_, 23001940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Image &clutImage_,const PixelInterpolateMethod method) 23013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 23023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 23031940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 23045fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2305e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ClutImage(image(),clutImage_.constImage(),method,exceptionInfo); 23061940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 230777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 23083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 23091940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23101940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorize(const unsigned int alpha_,const Color &penColor_) 23113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 23121940fe06f035ea32a4ec4df61f6897396877aa3cdirk colorize(alpha_,alpha_,alpha_,penColor_); 23133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 23143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 23151940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorize(const unsigned int alphaRed_, 23161940fe06f035ea32a4ec4df61f6897396877aa3cdirk const unsigned int alphaGreen_,const unsigned int alphaBlue_, 23171940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &penColor_) 23183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 23191940fe06f035ea32a4ec4df61f6897396877aa3cdirk char 2320151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy blend[MagickPathExtent]; 23211940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23221940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 23231940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 23241940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23251940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 23261940fe06f035ea32a4ec4df61f6897396877aa3cdirk target; 23271940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23281940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!penColor_.isValid()) 232977328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 233077328896b876314656427663695bc7b2c9be3f74dirk "Pen color argument is invalid"); 23311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2332151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy FormatLocaleString(blend,MagickPathExtent,"%u/%u/%u",alphaRed_,alphaGreen_, 23331940fe06f035ea32a4ec4df61f6897396877aa3cdirk alphaBlue_); 23341940fe06f035ea32a4ec4df61f6897396877aa3cdirk 233566a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk target=static_cast<PixelInfo>(penColor_); 23361940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2337e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ColorizeImage(image(),blend,&target,exceptionInfo); 23381940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 233977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 23403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 23411940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23421940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorMap(const size_t index_,const Color &color_) 23433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 23441940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 23451940fe06f035ea32a4ec4df61f6897396877aa3cdirk *imageptr; 23463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 23471940fe06f035ea32a4ec4df61f6897396877aa3cdirk imageptr=image(); 23483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 23491940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (index_ > (MaxColormapSize-1)) 235077328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 23511940fe06f035ea32a4ec4df61f6897396877aa3cdirk "Colormap index must be less than MaxColormapSize"); 23523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 23531940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!color_.isValid()) 235477328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 235577328896b876314656427663695bc7b2c9be3f74dirk "Color argument is invalid"); 23561940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23571940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 23581940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23591940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Ensure that colormap size is large enough 23601940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (colorMapSize() < (index_+1)) 23611940fe06f035ea32a4ec4df61f6897396877aa3cdirk colorMapSize(index_+1); 23621940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23631940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Set color at index in colormap 23641940fe06f035ea32a4ec4df61f6897396877aa3cdirk (imageptr->colormap)[index_]=color_; 23651940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 23661940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23671940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::colorMap(const size_t index_) const 23681940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 23691940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!constImage()->colormap) 237001efa03bcf9c158fd3bd7fa4f81800d00a1e221ccristy { 237177328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 237277328896b876314656427663695bc7b2c9be3f74dirk "Image does not contain a colormap"); 237301efa03bcf9c158fd3bd7fa4f81800d00a1e221ccristy return(Color()); 237401efa03bcf9c158fd3bd7fa4f81800d00a1e221ccristy } 23751940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23761940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (index_ > constImage()->colors-1) 237777328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError,"Index out of range"); 23781940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23791940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Color((constImage()->colormap)[index_])); 23801940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 23813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 23821940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::colorMatrix(const size_t order_, 23831940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double *color_matrix_) 23841940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 23851940fe06f035ea32a4ec4df61f6897396877aa3cdirk KernelInfo 23861940fe06f035ea32a4ec4df61f6897396877aa3cdirk *kernel_info; 23871940fe06f035ea32a4ec4df61f6897396877aa3cdirk 23881940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 23892c57b74e160f9b605d74dec24081309f28b83899cristy kernel_info=AcquireKernelInfo((const char *) NULL,exceptionInfo); 23908418c7e51974060a1c724e25d700d72fb437174bcristy if (kernel_info != (KernelInfo *) NULL) 23911940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 23928418c7e51974060a1c724e25d700d72fb437174bcristy kernel_info->width=order_; 23938418c7e51974060a1c724e25d700d72fb437174bcristy kernel_info->height=order_; 23948418c7e51974060a1c724e25d700d72fb437174bcristy kernel_info->values=(MagickRealType *) AcquireAlignedMemory(order_, 23958418c7e51974060a1c724e25d700d72fb437174bcristy order_*sizeof(*kernel_info->values)); 23968418c7e51974060a1c724e25d700d72fb437174bcristy if (kernel_info->values != (MagickRealType *) NULL) 23978418c7e51974060a1c724e25d700d72fb437174bcristy { 23988418c7e51974060a1c724e25d700d72fb437174bcristy MagickCore::Image 23998418c7e51974060a1c724e25d700d72fb437174bcristy *newImage; 24001940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24018418c7e51974060a1c724e25d700d72fb437174bcristy for (ssize_t i=0; i < (ssize_t) (order_*order_); i++) 24028418c7e51974060a1c724e25d700d72fb437174bcristy kernel_info->values[i]=color_matrix_[i]; 2403e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ColorMatrixImage(image(),kernel_info,exceptionInfo); 24048418c7e51974060a1c724e25d700d72fb437174bcristy replaceImage(newImage); 24058418c7e51974060a1c724e25d700d72fb437174bcristy } 24068418c7e51974060a1c724e25d700d72fb437174bcristy kernel_info=DestroyKernelInfo(kernel_info); 24071940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 240877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 24091940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 24101940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2411181b2a74351daea0388a98b8e37e13efc53d42c9dirkbool Magick::Image::compare(const Image &reference_) const 24121940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 24131940fe06f035ea32a4ec4df61f6897396877aa3cdirk bool 24141940fe06f035ea32a4ec4df61f6897396877aa3cdirk status; 24151940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24161940fe06f035ea32a4ec4df61f6897396877aa3cdirk Image 24171940fe06f035ea32a4ec4df61f6897396877aa3cdirk ref=reference_; 24181940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24191940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2420181b2a74351daea0388a98b8e37e13efc53d42c9dirk status=static_cast<bool>(IsImagesEqual(constImage(),ref.constImage(), 2421100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirk exceptionInfo)); 242277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 24231940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(status); 24241940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 24251940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24261940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::compare(const Image &reference_,const MetricType metric_) 24271940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 24281940fe06f035ea32a4ec4df61f6897396877aa3cdirk double 24291940fe06f035ea32a4ec4df61f6897396877aa3cdirk distortion=0.0; 24301940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24311940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 24321940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetImageDistortion(image(),reference_.constImage(),metric_,&distortion, 2433e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 243477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 24351940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(distortion); 24361940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 24371940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24381940fe06f035ea32a4ec4df61f6897396877aa3cdirkdouble Magick::Image::compareChannel(const ChannelType channel_, 24391940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Image &reference_,const MetricType metric_) 24401940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 24411940fe06f035ea32a4ec4df61f6897396877aa3cdirk double 24421940fe06f035ea32a4ec4df61f6897396877aa3cdirk distortion=0.0; 24431940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24441940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 24455fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 24461940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetImageDistortion(image(),reference_.constImage(),metric_,&distortion, 2447e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 24481940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 244977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 24501940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(distortion); 24511940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 24521940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24531940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image Magick::Image::compare(const Image &reference_, 24541940fe06f035ea32a4ec4df61f6897396877aa3cdirk const MetricType metric_,double *distortion) 24551940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 24561940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 24571940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 24581940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24591940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 24601940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=CompareImages(image(),reference_.constImage(),metric_,distortion, 2461e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 246277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 24631940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (newImage == (MagickCore::Image *) NULL) 24641940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Image()); 24651940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 24661940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Image(newImage)); 24671940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 24681940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24691940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image Magick::Image::compareChannel(const ChannelType channel_, 24701940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Image &reference_,const MetricType metric_,double *distortion) 24711940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 24721940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 24731940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 24741940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24751940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 24765fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 24771940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=CompareImages(image(),reference_.constImage(),metric_,distortion, 2478e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 24791940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 248077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 24811940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (newImage == (MagickCore::Image *) NULL) 24821940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Image()); 24831940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 24841940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Magick::Image(newImage)); 24851940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 24861940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24871940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::composite(const Image &compositeImage_, 24881940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Geometry &offset_,const CompositeOperator compose_) 24891940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 24901940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 24911940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 24921940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 24931940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24941940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 24951940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=offset_.xOff(), 24961940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=offset_.yOff(); 24971940fe06f035ea32a4ec4df61f6897396877aa3cdirk 24981940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(offset_).c_str(),&x,&y,&width, 24991940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 25001940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25011940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 25021940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 25032b1eb143fee5873d6fb20dfb3fa298ca7f1934ccdirk CompositeImage(image(),compositeImage_.constImage(),compose_,MagickTrue, 2504e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk x,y,exceptionInfo); 250577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25061940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 25071940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25081940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::composite(const Image &compositeImage_, 25091940fe06f035ea32a4ec4df61f6897396877aa3cdirk const GravityType gravity_,const CompositeOperator compose_) 25101940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 25111940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 25121940fe06f035ea32a4ec4df61f6897396877aa3cdirk geometry; 25131940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25141940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 25151940fe06f035ea32a4ec4df61f6897396877aa3cdirk SetGeometry(compositeImage_.constImage(),&geometry); 25161940fe06f035ea32a4ec4df61f6897396877aa3cdirk GravityAdjustGeometry(columns(),rows(),gravity_,&geometry); 25171940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25181940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 25192b1eb143fee5873d6fb20dfb3fa298ca7f1934ccdirk CompositeImage(image(),compositeImage_.constImage(),compose_,MagickTrue, 2520e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk geometry.x,geometry.y,exceptionInfo); 252177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25221940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 25231940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25241940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::composite(const Image &compositeImage_, 25251940fe06f035ea32a4ec4df61f6897396877aa3cdirk const ssize_t xOffset_,const ssize_t yOffset_, 25261940fe06f035ea32a4ec4df61f6897396877aa3cdirk const CompositeOperator compose_) 25271940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 25281940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Image supplied as compositeImage is composited with current image and 25291940fe06f035ea32a4ec4df61f6897396877aa3cdirk // results in updating current image. 25301940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 25311940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 25322b1eb143fee5873d6fb20dfb3fa298ca7f1934ccdirk CompositeImage(image(),compositeImage_.constImage(),compose_,MagickTrue, 2533e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk xOffset_,yOffset_,exceptionInfo); 253477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25351940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 25361940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25374ab21d079ec146c4c106925c683a8f9398980856dirkvoid Magick::Image::connectedComponents(const size_t connectivity_) 25384ab21d079ec146c4c106925c683a8f9398980856dirk{ 25394ab21d079ec146c4c106925c683a8f9398980856dirk MagickCore::Image 25404ab21d079ec146c4c106925c683a8f9398980856dirk *newImage; 25414ab21d079ec146c4c106925c683a8f9398980856dirk 25424ab21d079ec146c4c106925c683a8f9398980856dirk GetPPException; 25432ca0e9a086cf4f4d9240132badd01860cb2b5824Cristy newImage=ConnectedComponentsImage(constImage(),connectivity_, 254462e1398b95af43bd1990b6dece2e0e9fb527dd4dCristy (CCObjectInfo **) NULL,exceptionInfo); 25454ab21d079ec146c4c106925c683a8f9398980856dirk replaceImage(newImage); 254677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25474ab21d079ec146c4c106925c683a8f9398980856dirk} 25484ab21d079ec146c4c106925c683a8f9398980856dirk 2549eb68e91158bc0035e3a4aeddf4b99fa09f15493ddirkvoid Magick::Image::contrast(const bool sharpen_) 25501940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 25511940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 25521940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2553e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ContrastImage(image(),(MagickBooleanType) sharpen_,exceptionInfo); 255477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25551940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 25561940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25571940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::contrastStretch(const double blackPoint_, 25581940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double whitePoint_) 25591940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 25601940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 25611940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2562e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ContrastStretchImage(image(),blackPoint_,whitePoint_,exceptionInfo); 256377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25641940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 25651940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25661940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::contrastStretchChannel(const ChannelType channel_, 25671940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double blackPoint_,const double whitePoint_) 25681940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 25691940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 25701940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 25715fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 2572e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ContrastStretchImage(image(),blackPoint_,whitePoint_,exceptionInfo); 25731940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 257477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 25751940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 25761940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25771940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::convolve(const size_t order_,const double *kernel_) 25781940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 25791940fe06f035ea32a4ec4df61f6897396877aa3cdirk KernelInfo 25801940fe06f035ea32a4ec4df61f6897396877aa3cdirk *kernel_info; 25811940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25821940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 25832c57b74e160f9b605d74dec24081309f28b83899cristy kernel_info=AcquireKernelInfo((const char *) NULL,exceptionInfo); 25841940fe06f035ea32a4ec4df61f6897396877aa3cdirk kernel_info->width=order_; 25851940fe06f035ea32a4ec4df61f6897396877aa3cdirk kernel_info->height=order_; 2586d97115ebc5ba6f5c78df83f862181739526c552edirk kernel_info->x=(ssize_t) (order_-1)/2; 2587d97115ebc5ba6f5c78df83f862181739526c552edirk kernel_info->y=(ssize_t) (order_-1)/2; 25881940fe06f035ea32a4ec4df61f6897396877aa3cdirk kernel_info->values=(MagickRealType *) AcquireAlignedMemory(order_, 25891940fe06f035ea32a4ec4df61f6897396877aa3cdirk order_*sizeof(*kernel_info->values)); 25901940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (kernel_info->values != (MagickRealType *) NULL) 25911940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 25921940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 25931940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 25941940fe06f035ea32a4ec4df61f6897396877aa3cdirk 25951940fe06f035ea32a4ec4df61f6897396877aa3cdirk for (ssize_t i=0; i < (ssize_t) (order_*order_); i++) 25961940fe06f035ea32a4ec4df61f6897396877aa3cdirk kernel_info->values[i]=kernel_[i]; 2597e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ConvolveImage(image(),kernel_info,exceptionInfo); 25981940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 25991940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 26001940fe06f035ea32a4ec4df61f6897396877aa3cdirk kernel_info=DestroyKernelInfo(kernel_info); 260177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 26021940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26031940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26041f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirkvoid Magick::Image::copyPixels(const Image &source_,const Geometry &geometry_, 26051f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk const Offset &offset_) 26061f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk{ 26071f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk const OffsetInfo 26081f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk offset=offset_; 26091f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk 26101f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk const RectangleInfo 26111f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk geometry=geometry_; 26121f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk 26131f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk GetPPException; 26141f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk (void) CopyImagePixels(image(),source_.constImage(),&geometry,&offset, 26151f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk exceptionInfo); 26161f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk ThrowImageException; 26171f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk} 26181f5fd5aeaee99fd19bacf7a1350ce73cd5ab1825dirk 26191940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::crop(const Geometry &geometry_) 26201940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26211940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 26221940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 26231940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26241940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 26251940fe06f035ea32a4ec4df61f6897396877aa3cdirk cropInfo=geometry_; 26261940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26271940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2628e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=CropImage(constImage(),&cropInfo,exceptionInfo); 26291940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 263077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 26311940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26321940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26331940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::cycleColormap(const ssize_t amount_) 26341940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26351940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 26361940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2637e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk CycleColormapImage(image(),amount_,exceptionInfo); 263877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 26391940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26401940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26411940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::decipher(const std::string &passphrase_) 26421940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26431940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 26441940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2645e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk DecipherImage(image(),passphrase_.c_str(),exceptionInfo); 264677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 26471940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26481940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26491940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::defineSet(const std::string &magick_, 26501940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &key_,bool flag_) 26511940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26521940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 26531940fe06f035ea32a4ec4df61f6897396877aa3cdirk definition; 26541940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26551940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 26561940fe06f035ea32a4ec4df61f6897396877aa3cdirk definition=magick_ + ":" + key_; 26571940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (flag_) 26581940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) SetImageOption(imageInfo(),definition.c_str(),""); 26591940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 26601940fe06f035ea32a4ec4df61f6897396877aa3cdirk DeleteImageOption(imageInfo(),definition.c_str()); 26611940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26621940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26631940fe06f035ea32a4ec4df61f6897396877aa3cdirkbool Magick::Image::defineSet(const std::string &magick_, 26641940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &key_ ) const 26651940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26661940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char 26671940fe06f035ea32a4ec4df61f6897396877aa3cdirk *option; 26681940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26691940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 26701940fe06f035ea32a4ec4df61f6897396877aa3cdirk key; 26711940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26721940fe06f035ea32a4ec4df61f6897396877aa3cdirk key=magick_ + ":" + key_; 26731940fe06f035ea32a4ec4df61f6897396877aa3cdirk option=GetImageOption(constImageInfo(),key.c_str()); 26741940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (option) 26751940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(true); 26761940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(false); 26771940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26781940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26791940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::defineValue(const std::string &magick_, 26801940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &key_,const std::string &value_) 26811940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26821940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 26831940fe06f035ea32a4ec4df61f6897396877aa3cdirk format, 26841940fe06f035ea32a4ec4df61f6897396877aa3cdirk option; 26851940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26861940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 26871940fe06f035ea32a4ec4df61f6897396877aa3cdirk format=magick_ + ":" + key_; 26881940fe06f035ea32a4ec4df61f6897396877aa3cdirk option=value_; 26891940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) SetImageOption(imageInfo(),format.c_str(),option.c_str()); 26901940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 26911940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26921940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::defineValue(const std::string &magick_, 26931940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &key_) const 26941940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 26951940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char 26961940fe06f035ea32a4ec4df61f6897396877aa3cdirk *option; 26971940fe06f035ea32a4ec4df61f6897396877aa3cdirk 26981940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 26991940fe06f035ea32a4ec4df61f6897396877aa3cdirk definition; 27001940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27011940fe06f035ea32a4ec4df61f6897396877aa3cdirk definition=magick_ + ":" + key_; 27021940fe06f035ea32a4ec4df61f6897396877aa3cdirk option=GetImageOption(constImageInfo(),definition.c_str()); 27031940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (option) 27041940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string(option)); 27051940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(std::string()); 27061940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27071940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27081940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::deskew(const double threshold_) 27091940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 27101940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 27111940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 27121940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27131940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2714e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=DeskewImage(constImage(),threshold_,exceptionInfo); 27151940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 271677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 27171940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27181940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27191940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::despeckle(void) 27201940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 27211940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 27221940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 27231940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27241940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2725e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=DespeckleImage(constImage(),exceptionInfo); 27261940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 272777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 27281940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27291940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27301940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::display(void) 27311940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 27321940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2733e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk DisplayImages(imageInfo(),image(),exceptionInfo); 273477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 27351940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27361940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2737827944d54938c1f8a74ff53cd35c11801060d995dirkvoid Magick::Image::distort(const DistortMethod method_, 27381940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t numberArguments_,const double *arguments_,const bool bestfit_) 27391940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 27401940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 27411940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 27421940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27431940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 27441940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=DistortImage(constImage(), method_,numberArguments_,arguments_, 2745e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk bestfit_ == true ? MagickTrue : MagickFalse,exceptionInfo); 27461940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 274777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 27481940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27491940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27501940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::draw(const Magick::Drawable &drawable_) 27511940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 27521940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawingWand 27531940fe06f035ea32a4ec4df61f6897396877aa3cdirk *wand; 27541940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27551940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 27561940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27572e1ade784b83a362b445b118342ef9e28db4ab06dirk wand=AcquireDrawingWand(options()->drawInfo(),image()); 27581940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27591940fe06f035ea32a4ec4df61f6897396877aa3cdirk if(wand) 27601940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 27611940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawable_.operator()(wand); 27621940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27631940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawRender(wand); 27641940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27651940fe06f035ea32a4ec4df61f6897396877aa3cdirk ClonePPDrawException(wand); 27661940fe06f035ea32a4ec4df61f6897396877aa3cdirk wand=DestroyDrawingWand(wand); 276707f84e72b205d18eb8ad35380af95351d9f0a1a3dirk ThrowPPDrawException(quiet()); 27681940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 27691940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27701940fe06f035ea32a4ec4df61f6897396877aa3cdirk 2771263b876b613ee3cddda42810a4b421a73895327cdirkvoid Magick::Image::draw(const std::vector<Magick::Drawable> &drawable_) 27721940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 27731940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawingWand 27741940fe06f035ea32a4ec4df61f6897396877aa3cdirk *wand; 27751940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27761940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 27771940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27782e1ade784b83a362b445b118342ef9e28db4ab06dirk wand= AcquireDrawingWand(options()->drawInfo(),image()); 27791940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27801940fe06f035ea32a4ec4df61f6897396877aa3cdirk if(wand) 27811940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 2782263b876b613ee3cddda42810a4b421a73895327cdirk for (std::vector<Magick::Drawable>::const_iterator p = drawable_.begin(); 27831940fe06f035ea32a4ec4df61f6897396877aa3cdirk p != drawable_.end(); p++ ) 27841940fe06f035ea32a4ec4df61f6897396877aa3cdirk { 27851940fe06f035ea32a4ec4df61f6897396877aa3cdirk p->operator()(wand); 278677328896b876314656427663695bc7b2c9be3f74dirk if (DrawGetExceptionType(wand) != MagickCore::UndefinedException) 27871940fe06f035ea32a4ec4df61f6897396877aa3cdirk break; 27881940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 27891940fe06f035ea32a4ec4df61f6897396877aa3cdirk 279077328896b876314656427663695bc7b2c9be3f74dirk if (DrawGetExceptionType(wand) == MagickCore::UndefinedException) 27911940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawRender(wand); 27921940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27931940fe06f035ea32a4ec4df61f6897396877aa3cdirk ClonePPDrawException(wand); 27941940fe06f035ea32a4ec4df61f6897396877aa3cdirk wand=DestroyDrawingWand(wand); 279507f84e72b205d18eb8ad35380af95351d9f0a1a3dirk ThrowPPDrawException(quiet()); 27961940fe06f035ea32a4ec4df61f6897396877aa3cdirk } 27971940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 27981940fe06f035ea32a4ec4df61f6897396877aa3cdirk 27991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::edge(const double radius_) 28001940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 28011940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 28021940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 28031940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28041940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2805e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=EdgeImage(constImage(),radius_,exceptionInfo); 28061940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 280777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 28081940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 28091940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28101940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::emboss(const double radius_,const double sigma_) 28111940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 28121940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 28131940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 28141940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28151940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2816e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=EmbossImage(constImage(),radius_,sigma_,exceptionInfo); 28171940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 281877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 28191940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 28201940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28211940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::encipher(const std::string &passphrase_) 28221940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 28231940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 28241940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2825e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk EncipherImage(image(),passphrase_.c_str(),exceptionInfo); 282677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 28271940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 28281940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28291940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::enhance(void) 28301940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 28311940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 28321940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 28331940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28341940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2835e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=EnhanceImage(constImage(),exceptionInfo); 28361940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 283777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 28381940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 28391940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28401940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::equalize(void) 28411940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 28421940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 28431940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2844e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk EqualizeImage(image(),exceptionInfo); 284577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 28461940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 28471940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28481940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::erase(void) 28491940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 28501940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 28511940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2852e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) SetImageBackgroundColor(image(),exceptionInfo); 285377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 28541940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 28551940fe06f035ea32a4ec4df61f6897396877aa3cdirk 28565d4260ad9e283f1351524d0d2745560fc853e977dirkvoid Magick::Image::evaluate(const ChannelType channel_, 28575d4260ad9e283f1351524d0d2745560fc853e977dirk const MagickEvaluateOperator operator_,double rvalue_) 28585d4260ad9e283f1351524d0d2745560fc853e977dirk{ 28595d4260ad9e283f1351524d0d2745560fc853e977dirk GetPPException; 28605d4260ad9e283f1351524d0d2745560fc853e977dirk GetAndSetPPChannelMask(channel_); 28615d4260ad9e283f1351524d0d2745560fc853e977dirk EvaluateImage(image(),operator_,rvalue_,exceptionInfo); 28625d4260ad9e283f1351524d0d2745560fc853e977dirk RestorePPChannelMask; 28635d4260ad9e283f1351524d0d2745560fc853e977dirk ThrowImageException; 28645d4260ad9e283f1351524d0d2745560fc853e977dirk} 28655d4260ad9e283f1351524d0d2745560fc853e977dirk 28660634367b7f22185171e7cd6e6ddc890db11951efdirkvoid Magick::Image::evaluate(const ChannelType channel_, 28670634367b7f22185171e7cd6e6ddc890db11951efdirk const MagickFunction function_,const size_t number_parameters_, 28680634367b7f22185171e7cd6e6ddc890db11951efdirk const double *parameters_) 28690634367b7f22185171e7cd6e6ddc890db11951efdirk{ 28700634367b7f22185171e7cd6e6ddc890db11951efdirk GetPPException; 28710634367b7f22185171e7cd6e6ddc890db11951efdirk GetAndSetPPChannelMask(channel_); 28720634367b7f22185171e7cd6e6ddc890db11951efdirk FunctionImage(image(),function_,number_parameters_,parameters_, 28730634367b7f22185171e7cd6e6ddc890db11951efdirk exceptionInfo); 28740634367b7f22185171e7cd6e6ddc890db11951efdirk RestorePPChannelMask; 28750634367b7f22185171e7cd6e6ddc890db11951efdirk ThrowImageException; 28760634367b7f22185171e7cd6e6ddc890db11951efdirk} 28770634367b7f22185171e7cd6e6ddc890db11951efdirk 28780634367b7f22185171e7cd6e6ddc890db11951efdirkvoid Magick::Image::evaluate(const ChannelType channel_,const ssize_t x_, 28790634367b7f22185171e7cd6e6ddc890db11951efdirk const ssize_t y_,const size_t columns_,const size_t rows_, 28805d4260ad9e283f1351524d0d2745560fc853e977dirk const MagickEvaluateOperator operator_,const double rvalue_) 28815d4260ad9e283f1351524d0d2745560fc853e977dirk{ 28825d4260ad9e283f1351524d0d2745560fc853e977dirk RectangleInfo 28835d4260ad9e283f1351524d0d2745560fc853e977dirk geometry; 28845d4260ad9e283f1351524d0d2745560fc853e977dirk 28855d4260ad9e283f1351524d0d2745560fc853e977dirk MagickCore::Image 28865d4260ad9e283f1351524d0d2745560fc853e977dirk *cropImage; 28875d4260ad9e283f1351524d0d2745560fc853e977dirk 28885d4260ad9e283f1351524d0d2745560fc853e977dirk geometry.width = columns_; 28895d4260ad9e283f1351524d0d2745560fc853e977dirk geometry.height = rows_; 28905d4260ad9e283f1351524d0d2745560fc853e977dirk geometry.x = x_; 28915d4260ad9e283f1351524d0d2745560fc853e977dirk geometry.y = y_; 28925d4260ad9e283f1351524d0d2745560fc853e977dirk 28935d4260ad9e283f1351524d0d2745560fc853e977dirk GetPPException; 28945d4260ad9e283f1351524d0d2745560fc853e977dirk cropImage=CropImage(image(),&geometry,exceptionInfo); 28955d4260ad9e283f1351524d0d2745560fc853e977dirk GetAndSetPPChannelMask(channel_); 28965d4260ad9e283f1351524d0d2745560fc853e977dirk EvaluateImage(cropImage,operator_,rvalue_,exceptionInfo); 28975d4260ad9e283f1351524d0d2745560fc853e977dirk RestorePPChannelMask; 28985d4260ad9e283f1351524d0d2745560fc853e977dirk (void) CompositeImage(image(),cropImage,image()->alpha_trait == 28995d4260ad9e283f1351524d0d2745560fc853e977dirk BlendPixelTrait ? OverCompositeOp : CopyCompositeOp,MagickFalse, 29005d4260ad9e283f1351524d0d2745560fc853e977dirk geometry.x,geometry.y,exceptionInfo ); 29015d4260ad9e283f1351524d0d2745560fc853e977dirk cropImage=DestroyImageList(cropImage); 29025d4260ad9e283f1351524d0d2745560fc853e977dirk ThrowImageException; 29035d4260ad9e283f1351524d0d2745560fc853e977dirk} 29045d4260ad9e283f1351524d0d2745560fc853e977dirk 29051940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::extent(const Geometry &geometry_ ) 29061940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 29071940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 29081940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 29091940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29101940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 29111940fe06f035ea32a4ec4df61f6897396877aa3cdirk extentInfo=geometry_; 29121940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29131940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 29141940fe06f035ea32a4ec4df61f6897396877aa3cdirk extentInfo.x=geometry_.xOff(); 29151940fe06f035ea32a4ec4df61f6897396877aa3cdirk extentInfo.y=geometry_.yOff(); 29161940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2917e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ExtentImage(image(),&extentInfo,exceptionInfo); 29181940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 291977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 29201940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 29211940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29221940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::extent(const Geometry &geometry_, 29231940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &backgroundColor_) 29241940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 29251940fe06f035ea32a4ec4df61f6897396877aa3cdirk backgroundColor(backgroundColor_); 29261940fe06f035ea32a4ec4df61f6897396877aa3cdirk extent(geometry_); 29271940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 29281940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29291940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::extent(const Geometry &geometry_, 29301940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &backgroundColor_,const GravityType gravity_) 29311940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 29321940fe06f035ea32a4ec4df61f6897396877aa3cdirk backgroundColor(backgroundColor_); 29331940fe06f035ea32a4ec4df61f6897396877aa3cdirk extent(geometry_,gravity_); 29341940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 29351940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29361940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::extent(const Geometry &geometry_, 29371940fe06f035ea32a4ec4df61f6897396877aa3cdirk const GravityType gravity_) 29381940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 29391940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 29401940fe06f035ea32a4ec4df61f6897396877aa3cdirk geometry; 29411940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29421940fe06f035ea32a4ec4df61f6897396877aa3cdirk SetGeometry(image(),&geometry); 29431940fe06f035ea32a4ec4df61f6897396877aa3cdirk geometry.width=geometry_.width(); 29441940fe06f035ea32a4ec4df61f6897396877aa3cdirk geometry.height=geometry_.height(); 29451940fe06f035ea32a4ec4df61f6897396877aa3cdirk GravityAdjustGeometry(image()->columns,image()->rows,gravity_,&geometry); 29461940fe06f035ea32a4ec4df61f6897396877aa3cdirk extent(geometry); 29471940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 29481940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29491940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::flip(void) 29501940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 29511940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 29521940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 29531940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29541940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 2955e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=FlipImage(constImage(),exceptionInfo); 29561940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 295777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 29581940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 29591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29601940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillAlpha(const ssize_t x_,const ssize_t y_, 2961223843f66554713ee926b09f958ff6bfdb5acb61dirk const unsigned int alpha_,const bool invert_) 29621940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 29631940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 29641940fe06f035ea32a4ec4df61f6897396877aa3cdirk target; 29651940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29661940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 2967223843f66554713ee926b09f958ff6bfdb5acb61dirk 296866a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk target=static_cast<PixelInfo>(pixelColor(x_,y_)); 29691940fe06f035ea32a4ec4df61f6897396877aa3cdirk target.alpha=alpha_; 2970223843f66554713ee926b09f958ff6bfdb5acb61dirk GetPPException; 29715fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(AlphaChannel); 2972223843f66554713ee926b09f958ff6bfdb5acb61dirk FloodfillPaintImage(image(),options()->drawInfo(),&target,x_,y_, 2973223843f66554713ee926b09f958ff6bfdb5acb61dirk (MagickBooleanType)invert_,exceptionInfo); 2974223843f66554713ee926b09f958ff6bfdb5acb61dirk RestorePPChannelMask; 297577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 2976223843f66554713ee926b09f958ff6bfdb5acb61dirk} 2977223843f66554713ee926b09f958ff6bfdb5acb61dirk 2978223843f66554713ee926b09f958ff6bfdb5acb61dirkvoid Magick::Image::floodFillAlpha(const ssize_t x_,const ssize_t y_, 2979223843f66554713ee926b09f958ff6bfdb5acb61dirk const unsigned int alpha_,const Color &target_,const bool invert_) 2980223843f66554713ee926b09f958ff6bfdb5acb61dirk{ 2981223843f66554713ee926b09f958ff6bfdb5acb61dirk PixelInfo 2982223843f66554713ee926b09f958ff6bfdb5acb61dirk target; 2983223843f66554713ee926b09f958ff6bfdb5acb61dirk 2984223843f66554713ee926b09f958ff6bfdb5acb61dirk modifyImage(); 29851940fe06f035ea32a4ec4df61f6897396877aa3cdirk 298666a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk target=static_cast<PixelInfo>(target_); 2987223843f66554713ee926b09f958ff6bfdb5acb61dirk target.alpha=alpha_; 29881940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 29895fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(AlphaChannel); 2990223843f66554713ee926b09f958ff6bfdb5acb61dirk FloodfillPaintImage(image(),options()->drawInfo(),&target,x_,y_, 2991223843f66554713ee926b09f958ff6bfdb5acb61dirk (MagickBooleanType)invert_,exceptionInfo); 2992223843f66554713ee926b09f958ff6bfdb5acb61dirk RestorePPChannelMask; 299377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 29941940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 29951940fe06f035ea32a4ec4df61f6897396877aa3cdirk 29961940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillColor(const Geometry &point_, 2997223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Color &fillColor_,const bool invert_) 29981940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 2999223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFillColor(point_.xOff(),point_.yOff(),fillColor_,invert_); 30001940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30011940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30021940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillColor(const ssize_t x_,const ssize_t y_, 3003223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Color &fillColor_,const bool invert_) 30041940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3005223843f66554713ee926b09f958ff6bfdb5acb61dirk PixelInfo 3006223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel; 3007223843f66554713ee926b09f958ff6bfdb5acb61dirk 3008223843f66554713ee926b09f958ff6bfdb5acb61dirk modifyImage(); 3009223843f66554713ee926b09f958ff6bfdb5acb61dirk 3010223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel=static_cast<PixelInfo>(pixelColor(x_,y_)); 3011223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFill(x_,y_,(Magick::Image *)NULL,fillColor_,&pixel,invert_); 30121940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30131940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30141940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillColor(const Geometry &point_, 3015223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Color &fillColor_,const Magick::Color &borderColor_, 3016223843f66554713ee926b09f958ff6bfdb5acb61dirk const bool invert_) 30171940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3018223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFillColor(point_.xOff(),point_.yOff(),fillColor_,borderColor_,invert_); 30191940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30201940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30211940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillColor(const ssize_t x_,const ssize_t y_, 3022223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Color &fillColor_,const Magick::Color &borderColor_, 3023223843f66554713ee926b09f958ff6bfdb5acb61dirk const bool invert_) 30241940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3025223843f66554713ee926b09f958ff6bfdb5acb61dirk PixelInfo 3026223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel; 3027223843f66554713ee926b09f958ff6bfdb5acb61dirk 3028223843f66554713ee926b09f958ff6bfdb5acb61dirk modifyImage(); 3029223843f66554713ee926b09f958ff6bfdb5acb61dirk 3030223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel=static_cast<PixelInfo>(borderColor_); 3031223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFill(x_,y_,(Magick::Image *)NULL,fillColor_,&pixel,invert_); 30321940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30331940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30341940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillTexture(const Magick::Geometry &point_, 3035223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Image &texture_,const bool invert_) 30361940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3037223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFillTexture(point_.xOff(),point_.yOff(),texture_,invert_); 30381940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30391940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30401940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillTexture(const ssize_t x_,const ssize_t y_, 3041223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Image &texture_,const bool invert_) 30421940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3043223843f66554713ee926b09f958ff6bfdb5acb61dirk PixelInfo 3044223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel; 30451940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30461940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 30471940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3048223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel=static_cast<PixelInfo>(pixelColor(x_,y_)); 3049223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFill(x_,y_,&texture_,Magick::Color(),&pixel,invert_); 30501940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30511940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30521940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillTexture(const Magick::Geometry &point_, 3053223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Image &texture_,const Magick::Color &borderColor_, 3054223843f66554713ee926b09f958ff6bfdb5acb61dirk const bool invert_) 30551940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 3056223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFillTexture(point_.xOff(),point_.yOff(),texture_,borderColor_,invert_); 30571940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30581940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30591940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::floodFillTexture(const ssize_t x_,const ssize_t y_, 3060223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Image &texture_,const Magick::Color &borderColor_, 3061223843f66554713ee926b09f958ff6bfdb5acb61dirk const bool invert_) 30621940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 30631940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 3064223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel; 30651940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30661940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 30671940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3068223843f66554713ee926b09f958ff6bfdb5acb61dirk pixel=static_cast<PixelInfo>(borderColor_); 3069223843f66554713ee926b09f958ff6bfdb5acb61dirk floodFill(x_,y_,&texture_,Magick::Color(),&pixel,invert_); 30701940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30711940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30721940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::flop(void) 30731940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 30741940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 30751940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 30761940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30771940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3078e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=FlopImage(constImage(),exceptionInfo); 30791940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 308077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 30811940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30821940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30831940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fontTypeMetrics(const std::string &text_, 30841940fe06f035ea32a4ec4df61f6897396877aa3cdirk TypeMetric *metrics) 30851940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 30861940fe06f035ea32a4ec4df61f6897396877aa3cdirk DrawInfo 30871940fe06f035ea32a4ec4df61f6897396877aa3cdirk *drawInfo; 30881940fe06f035ea32a4ec4df61f6897396877aa3cdirk 30891940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo=options()->drawInfo(); 30901940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->text=const_cast<char *>(text_.c_str()); 30911940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3092e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk GetTypeMetrics(image(),drawInfo,&(metrics->_typeMetric),exceptionInfo); 30931940fe06f035ea32a4ec4df61f6897396877aa3cdirk drawInfo->text=0; 309477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 30951940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 30961940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3097e6e40ada97dd07b629238f845f92c9c0b75dc487dirkvoid Magick::Image::fontTypeMetricsMultiline(const std::string &text_, 3098e6e40ada97dd07b629238f845f92c9c0b75dc487dirk TypeMetric *metrics) 3099e6e40ada97dd07b629238f845f92c9c0b75dc487dirk{ 3100e6e40ada97dd07b629238f845f92c9c0b75dc487dirk DrawInfo 3101e6e40ada97dd07b629238f845f92c9c0b75dc487dirk *drawInfo; 3102e6e40ada97dd07b629238f845f92c9c0b75dc487dirk 3103e6e40ada97dd07b629238f845f92c9c0b75dc487dirk drawInfo=options()->drawInfo(); 3104e6e40ada97dd07b629238f845f92c9c0b75dc487dirk drawInfo->text=const_cast<char *>(text_.c_str()); 3105e6e40ada97dd07b629238f845f92c9c0b75dc487dirk GetPPException; 3106e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk GetMultilineTypeMetrics(image(),drawInfo,&(metrics->_typeMetric),exceptionInfo); 3107e6e40ada97dd07b629238f845f92c9c0b75dc487dirk drawInfo->text=0; 310877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 3109e6e40ada97dd07b629238f845f92c9c0b75dc487dirk} 3110e6e40ada97dd07b629238f845f92c9c0b75dc487dirk 31111940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::frame(const Geometry &geometry_) 31121940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 31131940fe06f035ea32a4ec4df61f6897396877aa3cdirk FrameInfo 31141940fe06f035ea32a4ec4df61f6897396877aa3cdirk info; 31151940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31161940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 31171940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 31181940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31191940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.x=static_cast<ssize_t>(geometry_.width()); 31201940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.y=static_cast<ssize_t>(geometry_.height()); 31211940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.width=columns() + (static_cast<size_t>(info.x) << 1); 31221940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.height=rows() + (static_cast<size_t>(info.y) << 1); 31231940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.outer_bevel=geometry_.xOff(); 31241940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.inner_bevel=geometry_.yOff(); 31251940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31261940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3127e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=FrameImage(constImage(),&info,image()->compose,exceptionInfo); 31281940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 312977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 31301940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 31311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31321940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::frame(const size_t width_,const size_t height_, 3133867bea1210aaeb56a9709c5a63340016a667a427dirk const ssize_t innerBevel_,const ssize_t outerBevel_) 31341940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 31351940fe06f035ea32a4ec4df61f6897396877aa3cdirk FrameInfo 31361940fe06f035ea32a4ec4df61f6897396877aa3cdirk info; 31371940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31381940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 31391940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 31401940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31411940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.x=static_cast<ssize_t>(width_); 31421940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.y=static_cast<ssize_t>(height_); 31431940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.width=columns() + (static_cast<size_t>(info.x) << 1); 31441940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.height=rows() + (static_cast<size_t>(info.y) << 1); 31451940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.outer_bevel=static_cast<ssize_t>(outerBevel_); 31461940fe06f035ea32a4ec4df61f6897396877aa3cdirk info.inner_bevel=static_cast<ssize_t>(innerBevel_); 31471940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31481940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3149e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=FrameImage(constImage(),&info,image()->compose,exceptionInfo); 31501940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 315177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 31521940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 31531940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31541940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fx(const std::string expression_) 31551940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 31561940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 31571940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 31581940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31591940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3160e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=FxImage(constImage(),expression_.c_str(),exceptionInfo); 31611940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 316277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 31631940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 31641940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31651940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::fx(const std::string expression_, 31661940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::ChannelType channel_) 31671940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 31681940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 31691940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 31701940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31711940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 31725fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3173e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=FxImage(constImage(),expression_.c_str(),exceptionInfo); 31741940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 31751940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 317677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 31771940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 31781940fe06f035ea32a4ec4df61f6897396877aa3cdirk 31791940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::gamma(const double gamma_) 31801940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 31811940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 31821940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3183e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk GammaImage(image(),gamma_,exceptionInfo); 318477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 31853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 31863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 31871940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::gamma(const double gammaRed_,const double gammaGreen_, 31881940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double gammaBlue_) 31893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 31903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 31911940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 31927e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk GetAndSetPPChannelMask(RedChannel); 31937e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk (void) GammaImage(image(),gammaRed_,exceptionInfo); 31947e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk SetPPChannelMask(GreenChannel); 31957e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk (void) GammaImage(image(),gammaGreen_,exceptionInfo); 31967e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk SetPPChannelMask(BlueChannel); 31977e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk (void) GammaImage(image(),gammaBlue_,exceptionInfo); 31987e2bdfa8375d6f4c069730085aa5e18b31b6ac62dirk RestorePPChannelMask; 319977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 32003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32011940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3202b5af2acfbf05cc6af1fc4a69d1fda2f497ca9719dirkvoid Magick::Image::gaussianBlur(const double radius_,const double sigma_) 32033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32041940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 32051940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 32061940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32071940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3208b5af2acfbf05cc6af1fc4a69d1fda2f497ca9719dirk newImage=GaussianBlurImage(constImage(),radius_,sigma_,exceptionInfo); 32091940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 321077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 32113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 32131940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::gaussianBlurChannel(const ChannelType channel_, 3214b5af2acfbf05cc6af1fc4a69d1fda2f497ca9719dirk const double radius_,const double sigma_) 32153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32161940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 32171940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 32183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 32191940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 32205fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3221b5af2acfbf05cc6af1fc4a69d1fda2f497ca9719dirk newImage=GaussianBlurImage(constImage(),radius_,sigma_,exceptionInfo); 32221940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 32231940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 322477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 32253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 32271940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst Magick::Quantum *Magick::Image::getConstPixels(const ssize_t x_, 32281940fe06f035ea32a4ec4df61f6897396877aa3cdirk const ssize_t y_,const size_t columns_,const size_t rows_) const 32293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32301940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Quantum 32311940fe06f035ea32a4ec4df61f6897396877aa3cdirk *p; 32321940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32331940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 32341d4a6951ace4a184f51cfd8c25b1586c6453be96cristy p=GetVirtualPixels(constImage(),x_, y_,columns_, rows_,exceptionInfo); 323577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 32361940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(p); 32373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32381940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32391940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst void *Magick::Image::getConstMetacontent(void) const 32403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32411940fe06f035ea32a4ec4df61f6897396877aa3cdirk const void 32421940fe06f035ea32a4ec4df61f6897396877aa3cdirk *result; 32431940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32441940fe06f035ea32a4ec4df61f6897396877aa3cdirk result=GetVirtualMetacontent(constImage()); 32451940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32461940fe06f035ea32a4ec4df61f6897396877aa3cdirk if(!result) 324777328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 324877328896b876314656427663695bc7b2c9be3f74dirk "Unable to retrieve meta content."); 32491940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32501940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(result); 32513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 32531940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid *Magick::Image::getMetacontent(void ) 32543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32551940fe06f035ea32a4ec4df61f6897396877aa3cdirk void 32561940fe06f035ea32a4ec4df61f6897396877aa3cdirk *result; 32571940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32581940fe06f035ea32a4ec4df61f6897396877aa3cdirk result=GetAuthenticMetacontent(image()); 32591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32601940fe06f035ea32a4ec4df61f6897396877aa3cdirk if(!result) 326177328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 326277328896b876314656427663695bc7b2c9be3f74dirk "Unable to retrieve meta content."); 32631940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32641940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(result); 32653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 32671940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Quantum *Magick::Image::getPixels(const ssize_t x_,const ssize_t y_, 32681940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t columns_,const size_t rows_) 32693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32701940fe06f035ea32a4ec4df61f6897396877aa3cdirk Quantum 32711940fe06f035ea32a4ec4df61f6897396877aa3cdirk *result; 32721940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 32741940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 32751d4a6951ace4a184f51cfd8c25b1586c6453be96cristy result=GetAuthenticPixels(image(),x_, y_,columns_,rows_,exceptionInfo); 327677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 32773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 32781940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(result); 32793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32801940fe06f035ea32a4ec4df61f6897396877aa3cdirk 32817f150fdaccb38c6289ee9f3f2230b6ed3b0a56d0dirkvoid Magick::Image::grayscale(const PixelIntensityMethod method_) 328248f358a1cd1920311b1f884d79829788200ccc2ddirk{ 328348f358a1cd1920311b1f884d79829788200ccc2ddirk modifyImage(); 328448f358a1cd1920311b1f884d79829788200ccc2ddirk GetPPException; 328548f358a1cd1920311b1f884d79829788200ccc2ddirk (void) GrayscaleImage(image(),method_,exceptionInfo); 328677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 328748f358a1cd1920311b1f884d79829788200ccc2ddirk} 328848f358a1cd1920311b1f884d79829788200ccc2ddirk 32891940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::haldClut(const Image &clutImage_) 32903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 32911940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 32921940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3293e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) HaldClutImage(image(),clutImage_.constImage(),exceptionInfo); 329477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 32953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 32963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3297c8c49d48975358aa8c6e14e113ef4c135e90b212dirkvoid Magick::Image::houghLine(const size_t width_,const size_t height_, 3298c8c49d48975358aa8c6e14e113ef4c135e90b212dirk const size_t threshold_) 3299c8c49d48975358aa8c6e14e113ef4c135e90b212dirk{ 3300c8c49d48975358aa8c6e14e113ef4c135e90b212dirk MagickCore::Image 3301c8c49d48975358aa8c6e14e113ef4c135e90b212dirk *newImage; 3302c8c49d48975358aa8c6e14e113ef4c135e90b212dirk 3303c8c49d48975358aa8c6e14e113ef4c135e90b212dirk GetPPException; 3304c8c49d48975358aa8c6e14e113ef4c135e90b212dirk newImage=HoughLineImage(constImage(),width_,height_,threshold_, 3305e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 3306c8c49d48975358aa8c6e14e113ef4c135e90b212dirk replaceImage(newImage); 330777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 3308c8c49d48975358aa8c6e14e113ef4c135e90b212dirk} 3309c8c49d48975358aa8c6e14e113ef4c135e90b212dirk 3310ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirkMagick::ImageType Magick::Image::identifyType(void) const 3311ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk{ 3312ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk ImageType 3313ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk image_type; 3314ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk 3315ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk GetPPException; 3316ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk image_type=IdentifyImageType(constImage(),exceptionInfo); 3317ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk ThrowImageException; 3318ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk return(image_type); 3319ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk} 3320ab4f0bb4e2c2d3e3e61408499755fa710f15e18fdirk 33211940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::implode(const double factor_) 33223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 33231940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 33241940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 33251940fe06f035ea32a4ec4df61f6897396877aa3cdirk 33261940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 33271940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=ImplodeImage(constImage(),factor_,image()->interpolate, 3328e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 33291940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 333077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 33313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 33323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 33331940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::inverseFourierTransform(const Image &phase_) 33343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 33351940fe06f035ea32a4ec4df61f6897396877aa3cdirk inverseFourierTransform(phase_,true); 33363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 33371940fe06f035ea32a4ec4df61f6897396877aa3cdirk 33381940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::inverseFourierTransform(const Image &phase_, 33391940fe06f035ea32a4ec4df61f6897396877aa3cdirk const bool magnitude_) 33403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 33411940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 33421940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 33431940fe06f035ea32a4ec4df61f6897396877aa3cdirk 33441940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 33451940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=InverseFourierTransformImage(constImage(),phase_.constImage(), 3346e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk magnitude_ == true ? MagickTrue : MagickFalse,exceptionInfo); 33471940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 334877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 33493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 33503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 33514412c6816cd42de22d222b5a03938e9e0797efb3dirkvoid Magick::Image::kuwahara(const double radius_,const double sigma_) 3352a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk{ 3353a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk MagickCore::Image 3354a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk *newImage; 3355a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk 3356a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk GetPPException; 33574412c6816cd42de22d222b5a03938e9e0797efb3dirk newImage=KuwaharaImage(constImage(),radius_,sigma_,exceptionInfo); 3358a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk replaceImage(newImage); 335977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 3360a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk} 3361a6045f5b5bf02334dab8f587e5284dd4fc0e2806dirk 33624412c6816cd42de22d222b5a03938e9e0797efb3dirkvoid Magick::Image::kuwaharaChannel(const ChannelType channel_, 33634412c6816cd42de22d222b5a03938e9e0797efb3dirk const double radius_,const double sigma_) 33644412c6816cd42de22d222b5a03938e9e0797efb3dirk{ 33654412c6816cd42de22d222b5a03938e9e0797efb3dirk MagickCore::Image 33664412c6816cd42de22d222b5a03938e9e0797efb3dirk *newImage; 33674412c6816cd42de22d222b5a03938e9e0797efb3dirk 33684412c6816cd42de22d222b5a03938e9e0797efb3dirk GetPPException; 33695fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 33704412c6816cd42de22d222b5a03938e9e0797efb3dirk newImage=KuwaharaImage(constImage(),radius_,sigma_,exceptionInfo); 33714412c6816cd42de22d222b5a03938e9e0797efb3dirk replaceImage(newImage); 33724412c6816cd42de22d222b5a03938e9e0797efb3dirk RestorePPChannelMask; 337377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 33744412c6816cd42de22d222b5a03938e9e0797efb3dirk} 33754412c6816cd42de22d222b5a03938e9e0797efb3dirk 33761940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::level(const double blackPoint_,const double whitePoint_, 33771940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double gamma_) 33783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 33793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 33801940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3381e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) LevelImage(image(),blackPoint_,whitePoint_,gamma_,exceptionInfo); 338277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 33833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 33843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 33851940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::levelChannel(const ChannelType channel_, 33861940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double blackPoint_,const double whitePoint_,const double gamma_) 33873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 33883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 33891940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 33905fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3391e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (void) LevelImage(image(),blackPoint_,whitePoint_,gamma_,exceptionInfo); 33921940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 339377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 33943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 33951940fe06f035ea32a4ec4df61f6897396877aa3cdirk 33961940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::levelColors(const Color &blackColor_, 33971940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &whiteColor_,const bool invert_) 33983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 33991940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 34001940fe06f035ea32a4ec4df61f6897396877aa3cdirk black, 34011940fe06f035ea32a4ec4df61f6897396877aa3cdirk white; 34023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 34031940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 34041940fe06f035ea32a4ec4df61f6897396877aa3cdirk 340566a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk black=static_cast<PixelInfo>(blackColor_); 340666a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk white=static_cast<PixelInfo>(whiteColor_); 34071940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 34081940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) LevelImageColors(image(),&black,&white,invert_ == true ? 3409e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk MagickTrue : MagickFalse,exceptionInfo); 341077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 34113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 34123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 34131940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::levelColorsChannel(const ChannelType channel_, 34141940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &blackColor_,const Color &whiteColor_,const bool invert_) 34153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 34161940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 34171940fe06f035ea32a4ec4df61f6897396877aa3cdirk black, 34181940fe06f035ea32a4ec4df61f6897396877aa3cdirk white; 34191940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 34211940fe06f035ea32a4ec4df61f6897396877aa3cdirk 342266a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk black=static_cast<PixelInfo>(blackColor_); 342366a0c5b9e3f8a7fde0bec2869b6d0b87977bca41dirk white=static_cast<PixelInfo>(whiteColor_); 34241940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 34255fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 34261940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) LevelImageColors(image(),&black,&white,invert_ == true ? 3427e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk MagickTrue : MagickFalse,exceptionInfo); 34281940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 342977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 34303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 34311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34327907f552405706a71b28bdbd6bf34e7100d6de31dirkvoid Magick::Image::levelize(const double blackPoint_,const double whitePoint_, 34337907f552405706a71b28bdbd6bf34e7100d6de31dirk const double gamma_) 34347907f552405706a71b28bdbd6bf34e7100d6de31dirk{ 34357907f552405706a71b28bdbd6bf34e7100d6de31dirk modifyImage(); 34367907f552405706a71b28bdbd6bf34e7100d6de31dirk GetPPException; 34377907f552405706a71b28bdbd6bf34e7100d6de31dirk (void) LevelizeImage(image(),blackPoint_,whitePoint_,gamma_,exceptionInfo); 34387907f552405706a71b28bdbd6bf34e7100d6de31dirk ThrowImageException; 34397907f552405706a71b28bdbd6bf34e7100d6de31dirk} 34407907f552405706a71b28bdbd6bf34e7100d6de31dirk 34417907f552405706a71b28bdbd6bf34e7100d6de31dirkvoid Magick::Image::levelizeChannel(const ChannelType channel_, 34427907f552405706a71b28bdbd6bf34e7100d6de31dirk const double blackPoint_,const double whitePoint_,const double gamma_) 34437907f552405706a71b28bdbd6bf34e7100d6de31dirk{ 34447907f552405706a71b28bdbd6bf34e7100d6de31dirk modifyImage(); 34457907f552405706a71b28bdbd6bf34e7100d6de31dirk GetPPException; 34467907f552405706a71b28bdbd6bf34e7100d6de31dirk GetAndSetPPChannelMask(channel_); 34477907f552405706a71b28bdbd6bf34e7100d6de31dirk (void) LevelizeImage(image(),blackPoint_,whitePoint_,gamma_,exceptionInfo); 34487907f552405706a71b28bdbd6bf34e7100d6de31dirk RestorePPChannelMask; 34497907f552405706a71b28bdbd6bf34e7100d6de31dirk ThrowImageException; 34507907f552405706a71b28bdbd6bf34e7100d6de31dirk} 34517907f552405706a71b28bdbd6bf34e7100d6de31dirk 34521940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::linearStretch(const double blackPoint_, 34531940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double whitePoint_) 34543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 34551940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 34561940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3457e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk LinearStretchImage(image(),blackPoint_,whitePoint_,exceptionInfo); 345877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 34593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 34603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 34611940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::liquidRescale(const Geometry &geometry_) 34623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 34631940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 34641940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 34651940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34661940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 34671940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 34681940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 34691940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34701940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 34711940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=0, 34721940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=0; 34731940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34741940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 34751940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 34761940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34771940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3478e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=LiquidRescaleImage(image(),width,height,x,y,exceptionInfo); 34791940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 348077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 34813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 34821940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3483be80460638d2432ed6f7bdc93be1b342e30f6e9cdirkvoid Magick::Image::localContrast(const double radius_,const double strength_) 3484be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk{ 3485be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk MagickCore::Image 3486be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk *newImage; 3487be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk 3488be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk GetPPException; 3489be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk newImage=LocalContrastImage(constImage(),radius_,strength_,exceptionInfo); 3490be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk replaceImage(newImage); 3491be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk ThrowImageException; 3492be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk} 3493be80460638d2432ed6f7bdc93be1b342e30f6e9cdirk 34941940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::magnify(void) 34953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 34961940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 34971940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 34981940fe06f035ea32a4ec4df61f6897396877aa3cdirk 34991940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3500e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=MagnifyImage(constImage(),exceptionInfo); 35011940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 350277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 35033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 35043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 35051940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::map(const Image &mapImage_,const bool dither_) 35063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 35073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 35081940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 35091940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeDither(dither_); 35101940fe06f035ea32a4ec4df61f6897396877aa3cdirk RemapImage(options()->quantizeInfo(),image(),mapImage_.constImage(), 3511e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 351277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 35133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 35141940fe06f035ea32a4ec4df61f6897396877aa3cdirk 35151940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::medianFilter(const double radius_) 35163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 35171940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 35181940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 35191940fe06f035ea32a4ec4df61f6897396877aa3cdirk 35201940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 35211940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=StatisticImage(image(),MedianStatistic,(size_t) radius_, 3522e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk (size_t) radius_,exceptionInfo); 35231940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 352477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 35253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 35263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 35271940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::minify(void) 35283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 35291940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 35301940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 35311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 35321940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3533e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=MinifyImage(constImage(),exceptionInfo); 35341940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 353577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 35363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 35373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 35381940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::modulate(const double brightness_,const double saturation_, 35391940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double hue_) 35403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 35411940fe06f035ea32a4ec4df61f6897396877aa3cdirk char 3542151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy modulate[MagickPathExtent + 1]; 35433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3544151b66dffc9e3c2e8c4f8cdaca37ff987ca0f497cristy FormatLocaleString(modulate,MagickPathExtent,"%3.6f,%3.6f,%3.6f",brightness_, 35451940fe06f035ea32a4ec4df61f6897396877aa3cdirk saturation_,hue_); 35463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 35471940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 35481940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3549e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk ModulateImage(image(),modulate,exceptionInfo); 355077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 35513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 35523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3553100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirkMagick::ImageMoments Magick::Image::moments(void) const 3554617c1234f713a6b7068e2a5abbf94a23f77c8181dirk{ 355577328896b876314656427663695bc7b2c9be3f74dirk return(ImageMoments(*this)); 3556617c1234f713a6b7068e2a5abbf94a23f77c8181dirk} 3557617c1234f713a6b7068e2a5abbf94a23f77c8181dirk 35583648685f9a848931845044f9da77dccc4cc4f480dirkvoid Magick::Image::morphology(const MorphologyMethod method_, 35593648685f9a848931845044f9da77dccc4cc4f480dirk const std::string kernel_,const ssize_t iterations_) 35603648685f9a848931845044f9da77dccc4cc4f480dirk{ 35613648685f9a848931845044f9da77dccc4cc4f480dirk KernelInfo 35623648685f9a848931845044f9da77dccc4cc4f480dirk *kernel; 35633648685f9a848931845044f9da77dccc4cc4f480dirk 35643648685f9a848931845044f9da77dccc4cc4f480dirk MagickCore::Image 35653648685f9a848931845044f9da77dccc4cc4f480dirk *newImage; 35663648685f9a848931845044f9da77dccc4cc4f480dirk 35673648685f9a848931845044f9da77dccc4cc4f480dirk GetPPException; 35682c57b74e160f9b605d74dec24081309f28b83899cristy kernel=AcquireKernelInfo(kernel_.c_str(),exceptionInfo); 35692c57b74e160f9b605d74dec24081309f28b83899cristy if (kernel == (KernelInfo *) NULL) 357077328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError,"Unable to parse kernel."); 35713648685f9a848931845044f9da77dccc4cc4f480dirk newImage=MorphologyImage(constImage(),method_,iterations_,kernel, 3572e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 35733648685f9a848931845044f9da77dccc4cc4f480dirk replaceImage(newImage); 35743648685f9a848931845044f9da77dccc4cc4f480dirk kernel=DestroyKernelInfo(kernel); 357577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 35763648685f9a848931845044f9da77dccc4cc4f480dirk} 35773648685f9a848931845044f9da77dccc4cc4f480dirk 35783648685f9a848931845044f9da77dccc4cc4f480dirkvoid Magick::Image::morphology(const MorphologyMethod method_, 35793648685f9a848931845044f9da77dccc4cc4f480dirk const KernelInfoType kernel_,const std::string arguments_, 35803648685f9a848931845044f9da77dccc4cc4f480dirk const ssize_t iterations_) 35813648685f9a848931845044f9da77dccc4cc4f480dirk{ 35823648685f9a848931845044f9da77dccc4cc4f480dirk const char 35833648685f9a848931845044f9da77dccc4cc4f480dirk *option; 35843648685f9a848931845044f9da77dccc4cc4f480dirk 35853648685f9a848931845044f9da77dccc4cc4f480dirk std::string 35863648685f9a848931845044f9da77dccc4cc4f480dirk kernel; 35873648685f9a848931845044f9da77dccc4cc4f480dirk 35883648685f9a848931845044f9da77dccc4cc4f480dirk option=CommandOptionToMnemonic(MagickKernelOptions,kernel_); 35893648685f9a848931845044f9da77dccc4cc4f480dirk if (option == (const char *)NULL) 35901deff92b197cfc3a4354e651548e83865ac728b1cristy { 35911deff92b197cfc3a4354e651548e83865ac728b1cristy throwExceptionExplicit(MagickCore::OptionError, 35921deff92b197cfc3a4354e651548e83865ac728b1cristy "Unable to determine kernel type."); 35931deff92b197cfc3a4354e651548e83865ac728b1cristy return; 35941deff92b197cfc3a4354e651548e83865ac728b1cristy } 35953648685f9a848931845044f9da77dccc4cc4f480dirk kernel=std::string(option); 35963648685f9a848931845044f9da77dccc4cc4f480dirk if (!arguments_.empty()) 35973648685f9a848931845044f9da77dccc4cc4f480dirk kernel+=":"+arguments_; 35983648685f9a848931845044f9da77dccc4cc4f480dirk 35993648685f9a848931845044f9da77dccc4cc4f480dirk morphology(method_,kernel,iterations_); 36003648685f9a848931845044f9da77dccc4cc4f480dirk} 36013648685f9a848931845044f9da77dccc4cc4f480dirk 36023648685f9a848931845044f9da77dccc4cc4f480dirkvoid Magick::Image::morphologyChannel(const ChannelType channel_, 36033648685f9a848931845044f9da77dccc4cc4f480dirk const MorphologyMethod method_,const std::string kernel_, 36043648685f9a848931845044f9da77dccc4cc4f480dirk const ssize_t iterations_) 36053648685f9a848931845044f9da77dccc4cc4f480dirk{ 36063648685f9a848931845044f9da77dccc4cc4f480dirk KernelInfo 36073648685f9a848931845044f9da77dccc4cc4f480dirk *kernel; 36083648685f9a848931845044f9da77dccc4cc4f480dirk 36093648685f9a848931845044f9da77dccc4cc4f480dirk MagickCore::Image 36103648685f9a848931845044f9da77dccc4cc4f480dirk *newImage; 36113648685f9a848931845044f9da77dccc4cc4f480dirk 36123648685f9a848931845044f9da77dccc4cc4f480dirk 36133648685f9a848931845044f9da77dccc4cc4f480dirk GetPPException; 36142c57b74e160f9b605d74dec24081309f28b83899cristy kernel=AcquireKernelInfo(kernel_.c_str(),exceptionInfo); 36152c57b74e160f9b605d74dec24081309f28b83899cristy if (kernel == (KernelInfo *)NULL) 36162688844bcbba1873074e5a933e43fbfd0290b135dirk { 36172688844bcbba1873074e5a933e43fbfd0290b135dirk throwExceptionExplicit(MagickCore::OptionError, 36182688844bcbba1873074e5a933e43fbfd0290b135dirk "Unable to parse kernel."); 36192688844bcbba1873074e5a933e43fbfd0290b135dirk return; 36202688844bcbba1873074e5a933e43fbfd0290b135dirk } 36215fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 36223648685f9a848931845044f9da77dccc4cc4f480dirk newImage=MorphologyImage(constImage(),method_,iterations_,kernel, 3623e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 36243648685f9a848931845044f9da77dccc4cc4f480dirk RestorePPChannelMask; 36253648685f9a848931845044f9da77dccc4cc4f480dirk replaceImage(newImage); 36263648685f9a848931845044f9da77dccc4cc4f480dirk kernel=DestroyKernelInfo(kernel); 362777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 36283648685f9a848931845044f9da77dccc4cc4f480dirk} 36293648685f9a848931845044f9da77dccc4cc4f480dirk 36303648685f9a848931845044f9da77dccc4cc4f480dirkvoid Magick::Image::morphologyChannel(const ChannelType channel_, 36313648685f9a848931845044f9da77dccc4cc4f480dirk const MorphologyMethod method_,const KernelInfoType kernel_, 36323648685f9a848931845044f9da77dccc4cc4f480dirk const std::string arguments_,const ssize_t iterations_) 36333648685f9a848931845044f9da77dccc4cc4f480dirk{ 36343648685f9a848931845044f9da77dccc4cc4f480dirk const char 36353648685f9a848931845044f9da77dccc4cc4f480dirk *option; 36363648685f9a848931845044f9da77dccc4cc4f480dirk 36373648685f9a848931845044f9da77dccc4cc4f480dirk std::string 36383648685f9a848931845044f9da77dccc4cc4f480dirk kernel; 36393648685f9a848931845044f9da77dccc4cc4f480dirk 36403648685f9a848931845044f9da77dccc4cc4f480dirk option=CommandOptionToMnemonic(MagickKernelOptions,kernel_); 36413648685f9a848931845044f9da77dccc4cc4f480dirk if (option == (const char *)NULL) 3642b8ef6e8671cbbe0f38b80f8307d96031bc59246cdirk { 3643b8ef6e8671cbbe0f38b80f8307d96031bc59246cdirk throwExceptionExplicit(MagickCore::OptionError, 3644b8ef6e8671cbbe0f38b80f8307d96031bc59246cdirk "Unable to determine kernel type."); 3645b8ef6e8671cbbe0f38b80f8307d96031bc59246cdirk return; 3646b8ef6e8671cbbe0f38b80f8307d96031bc59246cdirk } 36473648685f9a848931845044f9da77dccc4cc4f480dirk 36483648685f9a848931845044f9da77dccc4cc4f480dirk kernel=std::string(option); 36493648685f9a848931845044f9da77dccc4cc4f480dirk if (!arguments_.empty()) 36503648685f9a848931845044f9da77dccc4cc4f480dirk kernel+=":"+arguments_; 36513648685f9a848931845044f9da77dccc4cc4f480dirk 36523648685f9a848931845044f9da77dccc4cc4f480dirk morphologyChannel(channel_,method_,kernel,iterations_); 36533648685f9a848931845044f9da77dccc4cc4f480dirk} 36543648685f9a848931845044f9da77dccc4cc4f480dirk 36551940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::motionBlur(const double radius_,const double sigma_, 36561940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double angle_) 36573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 36581940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 36591940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 36601940fe06f035ea32a4ec4df61f6897396877aa3cdirk 36611940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3662e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=MotionBlurImage(constImage(),radius_,sigma_,angle_,exceptionInfo); 36631940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 366477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 36653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 36663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 36671940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::negate(const bool grayscale_) 36683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 36691940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 36701940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3671e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk NegateImage(image(),(MagickBooleanType) grayscale_,exceptionInfo); 367277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 36731940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 36743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 36751940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::negateChannel(const ChannelType channel_, 36761940fe06f035ea32a4ec4df61f6897396877aa3cdirk const bool grayscale_) 36771940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 36781940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 36791940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 36805fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3681e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk NegateImage(image(),(MagickBooleanType) grayscale_,exceptionInfo); 36821940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 368377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 36843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 36853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 36861940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::normalize(void) 36873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 36883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 36891940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3690e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk NormalizeImage(image(),exceptionInfo); 369177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 36923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 36931940fe06f035ea32a4ec4df61f6897396877aa3cdirk 36941940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::oilPaint(const double radius_,const double sigma_) 36953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 36961940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 36971940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 36981940fe06f035ea32a4ec4df61f6897396877aa3cdirk 36991940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3700e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=OilPaintImage(constImage(),radius_,sigma_,exceptionInfo); 37011940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 370277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 37033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 37043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3705a3af1222eb218de7eae918dcf92d2d3f8996271ddirkvoid Magick::Image::opaque(const Color &opaqueColor_,const Color &penColor_, 3706a3af1222eb218de7eae918dcf92d2d3f8996271ddirk const bool invert_) 37073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 37081940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 37091940fe06f035ea32a4ec4df61f6897396877aa3cdirk opaqueColor, 37101940fe06f035ea32a4ec4df61f6897396877aa3cdirk penColor; 37111940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37121940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 37131940fe06f035ea32a4ec4df61f6897396877aa3cdirk opaque, 37141940fe06f035ea32a4ec4df61f6897396877aa3cdirk pen; 37151940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37161940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!opaqueColor_.isValid()) 371777328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 371877328896b876314656427663695bc7b2c9be3f74dirk "Opaque color argument is invalid"); 37191940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37201940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!penColor_.isValid()) 372177328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 372277328896b876314656427663695bc7b2c9be3f74dirk "Pen color argument is invalid"); 37231940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37241940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 37251940fe06f035ea32a4ec4df61f6897396877aa3cdirk opaqueColor=opaqueColor_; 37261940fe06f035ea32a4ec4df61f6897396877aa3cdirk penColor=penColor_; 37271940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37281940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 37291940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) QueryColorCompliance(opaqueColor.c_str(),AllCompliance,&opaque, 3730e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 37311940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) QueryColorCompliance(penColor.c_str(),AllCompliance,&pen, 3732e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 3733a3af1222eb218de7eae918dcf92d2d3f8996271ddirk OpaquePaintImage(image(),&opaque,&pen,invert_ ? MagickTrue : MagickFalse, 3734e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 373577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 37363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 37371940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3738f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::orderedDither(std::string thresholdMap_) 3739f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 3740f1775d8f60a3ce551a096140d7559d46ba33ac14dirk modifyImage(); 3741f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 3742cd69a2d4e422d02a1ca70c45f59861752717871edirk (void) OrderedDitherImage(image(),thresholdMap_.c_str(),exceptionInfo); 374377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 3744f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 3745f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 3746f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::orderedDitherChannel(const ChannelType channel_, 3747f1775d8f60a3ce551a096140d7559d46ba33ac14dirk std::string thresholdMap_) 3748f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 3749f1775d8f60a3ce551a096140d7559d46ba33ac14dirk modifyImage(); 3750f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 37515fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3752cd69a2d4e422d02a1ca70c45f59861752717871edirk (void)OrderedDitherImage(image(),thresholdMap_.c_str(),exceptionInfo); 3753f1775d8f60a3ce551a096140d7559d46ba33ac14dirk RestorePPChannelMask; 375477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 3755f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 3756f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 37571940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::perceptible(const double epsilon_) 37583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 37591940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 37601940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3761e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk PerceptibleImage(image(),epsilon_,exceptionInfo); 376277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 37633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 37643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 37651940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::perceptibleChannel(const ChannelType channel_, 37661940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double epsilon_) 37673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 37683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 37691940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 37705fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3771e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk PerceptibleImage(image(),epsilon_,exceptionInfo); 37721940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 377377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 37743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 37751940fe06f035ea32a4ec4df61f6897396877aa3cdirk 3776100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirk Magick::ImagePerceptualHash Magick::Image::perceptualHash() const 3777e316d154e7b050fab78dbf86b33f0797594939cadirk{ 377877328896b876314656427663695bc7b2c9be3f74dirk return(ImagePerceptualHash(*this)); 3779e316d154e7b050fab78dbf86b33f0797594939cadirk} 3780e316d154e7b050fab78dbf86b33f0797594939cadirk 37811940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::ping(const std::string &imageSpec_) 37823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 37831940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 37841940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 37851940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37861940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 37871940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fileName(imageSpec_); 3788e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=PingImage(imageInfo(),exceptionInfo); 37895678eda356af71bb94f5ce79e1edfcda134133f5dirk read(newImage,exceptionInfo); 37903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 37913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 37921940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::ping(const Blob& blob_) 37933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 37941940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 37951940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 37961940fe06f035ea32a4ec4df61f6897396877aa3cdirk 37971940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3798e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=PingBlob(imageInfo(),blob_.data(),blob_.length(),exceptionInfo); 37995678eda356af71bb94f5ce79e1edfcda134133f5dirk read(newImage,exceptionInfo); 38003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38011940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38021940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::pixelColor(const ssize_t x_,const ssize_t y_, 38031940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &color_) 38043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 38051940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 38061940fe06f035ea32a4ec4df61f6897396877aa3cdirk packet; 38071940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38081940fe06f035ea32a4ec4df61f6897396877aa3cdirk Quantum 38091940fe06f035ea32a4ec4df61f6897396877aa3cdirk *pixel; 38101940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38111940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Test arguments to ensure they are within the image. 38121940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (y_ > (ssize_t) rows() || x_ > (ssize_t) columns()) 381377328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 381477328896b876314656427663695bc7b2c9be3f74dirk "Access outside of image boundary"); 38151940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38161940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 38171940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38181940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Set image to DirectClass 38191940fe06f035ea32a4ec4df61f6897396877aa3cdirk classType(DirectClass ); 38201940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38211940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Get pixel view 38221940fe06f035ea32a4ec4df61f6897396877aa3cdirk Pixels pixels(*this); 38231940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Set pixel value 38241940fe06f035ea32a4ec4df61f6897396877aa3cdirk pixel=pixels.get(x_, y_, 1, 1 ); 38251940fe06f035ea32a4ec4df61f6897396877aa3cdirk packet=color_; 382611a06d3f2cac0f17af7963e83bc6e9ebd2a377c0cristy MagickCore::SetPixelViaPixelInfo(constImage(),&packet,pixel); 38271940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Tell ImageMagick that pixels have been updated 38281940fe06f035ea32a4ec4df61f6897396877aa3cdirk pixels.sync(); 38293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38311940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Color Magick::Image::pixelColor(const ssize_t x_, 38321940fe06f035ea32a4ec4df61f6897396877aa3cdirk const ssize_t y_) const 38333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 38341940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Quantum 38351940fe06f035ea32a4ec4df61f6897396877aa3cdirk *pixel; 38361940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38371940fe06f035ea32a4ec4df61f6897396877aa3cdirk pixel=getConstPixels(x_,y_,1,1); 38381940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (pixel) 38393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 38401940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 38411940fe06f035ea32a4ec4df61f6897396877aa3cdirk packet; 38421940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38431940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::GetPixelInfoPixel(constImage(),pixel,&packet); 38441940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Color(packet)); 38453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 38461940fe06f035ea32a4ec4df61f6897396877aa3cdirk 38471940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Color()); // invalid 38483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38501940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::polaroid(const std::string &caption_,const double angle_, 38511940fe06f035ea32a4ec4df61f6897396877aa3cdirk const PixelInterpolateMethod method_) 38523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 38531940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 38541940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 38553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38561940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 38571940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=PolaroidImage(constImage(),options()->drawInfo(),caption_.c_str(), 3858e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk angle_,method_,exceptionInfo); 38591940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 386077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 38613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38631940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::posterize(const size_t levels_,const DitherMethod method_) 38643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 38653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 38661940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3867e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk PosterizeImage(image(),levels_,method_,exceptionInfo); 386877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 38693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38711940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::posterizeChannel(const ChannelType channel_, 38721940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t levels_,const DitherMethod method_) 38731940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 38741940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 38751940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 38765fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 3877e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk PosterizeImage(image(),levels_,method_,exceptionInfo); 38781940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 387977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 38803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38821940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::process(std::string name_,const ssize_t argc, 38831940fe06f035ea32a4ec4df61f6897396877aa3cdirk const char **argv) 38843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 38853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 38863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38871940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 38881940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) InvokeDynamicImageFilter(name_.c_str(),&image(),argc,argv, 3889e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 389077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 38913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 38923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 38931940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::profile(const std::string name_, 38941940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Magick::Blob &profile_) 38951940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 38961940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 38971940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 38981940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) ProfileImage(image(),name_.c_str(),(unsigned char *)profile_.data(), 3899e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk profile_.length(),exceptionInfo); 390077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 39013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39031940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Blob Magick::Image::profile(const std::string name_) const 39043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39051940fe06f035ea32a4ec4df61f6897396877aa3cdirk const StringInfo 39061940fe06f035ea32a4ec4df61f6897396877aa3cdirk *profile; 39073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39081940fe06f035ea32a4ec4df61f6897396877aa3cdirk profile=GetImageProfile(constImage(),name_.c_str()); 39093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39101940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (profile == (StringInfo *) NULL) 39111940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob()); 39121940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(Blob((void*) GetStringInfoDatum(profile),GetStringInfoLength( 39131940fe06f035ea32a4ec4df61f6897396877aa3cdirk profile))); 39143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39161940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::quantize(const bool measureError_) 39173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 39191940fe06f035ea32a4ec4df61f6897396877aa3cdirk 39201940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (measureError_) 39211940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeInfo()->measure_error=MagickTrue; 39223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy else 39231940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->quantizeInfo()->measure_error=MagickFalse; 39241940fe06f035ea32a4ec4df61f6897396877aa3cdirk 39251940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 3926e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk QuantizeImage(options()->quantizeInfo(),image(),exceptionInfo); 392777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 39283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39291940fe06f035ea32a4ec4df61f6897396877aa3cdirk 39301940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::raise(const Geometry &geometry_,const bool raisedFlag_) 39313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39321940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 39331940fe06f035ea32a4ec4df61f6897396877aa3cdirk raiseInfo=geometry_; 39341940fe06f035ea32a4ec4df61f6897396877aa3cdirk 39351940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 39363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 39371940fe06f035ea32a4ec4df61f6897396877aa3cdirk RaiseImage(image(),&raiseInfo,raisedFlag_ == true ? MagickTrue : MagickFalse, 3938e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 393977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 39403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39411940fe06f035ea32a4ec4df61f6897396877aa3cdirk 39428352b50e85321562d27f6a90aa7d461afa0c1df0dirkvoid Magick::Image::randomThreshold(const double low_,const double high_) 39433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39441940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 39458352b50e85321562d27f6a90aa7d461afa0c1df0dirk (void) RandomThresholdImage(image(),low_,high_,exceptionInfo); 394677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 39473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39491940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::randomThresholdChannel(const ChannelType channel_, 39508352b50e85321562d27f6a90aa7d461afa0c1df0dirk const double low_,const double high_) 39513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 39531940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 39545fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 39558352b50e85321562d27f6a90aa7d461afa0c1df0dirk (void) RandomThresholdImage(image(),low_,high_,exceptionInfo); 39561940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 395777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 39583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39601940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const Blob &blob_) 39613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39621940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 39631940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 39643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39651940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 39661940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=BlobToImage(imageInfo(),static_cast<const void *>(blob_.data()), 3967e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk blob_.length(),exceptionInfo); 3968671b5d721987b2a12d84b656de888be1c99aa881dirk read(newImage,exceptionInfo); 39693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39711940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const Blob &blob_,const Geometry &size_) 39723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39731940fe06f035ea32a4ec4df61f6897396877aa3cdirk size(size_); 39741940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_); 39753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39771940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const Blob &blob_,const Geometry &size_, 39781940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t depth_) 39793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39801940fe06f035ea32a4ec4df61f6897396877aa3cdirk size(size_); 39811940fe06f035ea32a4ec4df61f6897396877aa3cdirk depth(depth_); 39821940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_); 39833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 39851940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const Blob &blob_,const Geometry &size_, 39861940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t depth_,const std::string &magick_) 39873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39881940fe06f035ea32a4ec4df61f6897396877aa3cdirk size(size_); 39891940fe06f035ea32a4ec4df61f6897396877aa3cdirk depth(depth_); 39901940fe06f035ea32a4ec4df61f6897396877aa3cdirk magick(magick_); 39911940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Set explicit image format 39921940fe06f035ea32a4ec4df61f6897396877aa3cdirk fileName(magick_ + ':'); 39931940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_); 39943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 39951940fe06f035ea32a4ec4df61f6897396877aa3cdirk 39961940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const Blob &blob_,const Geometry &size_, 39971940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &magick_) 39983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 39991940fe06f035ea32a4ec4df61f6897396877aa3cdirk size(size_); 40001940fe06f035ea32a4ec4df61f6897396877aa3cdirk magick(magick_); 40011940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Set explicit image format 40021940fe06f035ea32a4ec4df61f6897396877aa3cdirk fileName(magick_ + ':'); 40031940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(blob_); 40043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 40053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 40061940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const Geometry &size_,const std::string &imageSpec_) 40073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 40081940fe06f035ea32a4ec4df61f6897396877aa3cdirk size(size_); 40091940fe06f035ea32a4ec4df61f6897396877aa3cdirk read(imageSpec_); 40101940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 40113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 40121940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const size_t width_,const size_t height_, 40131940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &map_,const StorageType type_,const void *pixels_) 40141940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 40151940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 40161940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 40173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 40181940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 40191940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=ConstituteImage(width_,height_,map_.c_str(),type_, pixels_, 4020e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 40211940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 402277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 40233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 40243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 40251940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::read(const std::string &imageSpec_) 40263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 40271940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 40281940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 40291940fe06f035ea32a4ec4df61f6897396877aa3cdirk 40301940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 40311940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->fileName(imageSpec_); 4032e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ReadImage(imageInfo(),exceptionInfo); 4033671b5d721987b2a12d84b656de888be1c99aa881dirk read(newImage,exceptionInfo); 40343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 40353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4036af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirkvoid Magick::Image::readMask(const Magick::Image &mask_) 4037af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk{ 4038af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk mask(mask_,ReadPixelMask); 4039af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk} 4040af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 4041af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirkMagick::Image Magick::Image::readMask(void) const 4042af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk{ 4043af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk return(mask(ReadPixelMask)); 4044af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk} 4045af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 40461940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::readPixels(const Magick::QuantumType quantum_, 40471940fe06f035ea32a4ec4df61f6897396877aa3cdirk const unsigned char *source_) 40483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 40491940fe06f035ea32a4ec4df61f6897396877aa3cdirk QuantumInfo 40501940fe06f035ea32a4ec4df61f6897396877aa3cdirk *quantum_info; 40511940fe06f035ea32a4ec4df61f6897396877aa3cdirk 40525f766ef8b0cd9906c2c3a56d845828380a251073cristy quantum_info=AcquireQuantumInfo(imageInfo(),image()); 40531940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 40541940fe06f035ea32a4ec4df61f6897396877aa3cdirk ImportQuantumPixels(image(),(MagickCore::CacheView *) NULL,quantum_info, 4055e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk quantum_,source_,exceptionInfo); 40561940fe06f035ea32a4ec4df61f6897396877aa3cdirk quantum_info=DestroyQuantumInfo(quantum_info); 405777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 40583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 40591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 40601940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::reduceNoise(void) 40613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 406297bcd8db015ea3519828dd0b2f738517825b73c3dirk reduceNoise(3); 40633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 40643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 406597bcd8db015ea3519828dd0b2f738517825b73c3dirkvoid Magick::Image::reduceNoise(const size_t order_) 40663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 40671940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 40681940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 40693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 40701940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 407197bcd8db015ea3519828dd0b2f738517825b73c3dirk newImage=StatisticImage(constImage(),NonpeakStatistic,order_, 407297bcd8db015ea3519828dd0b2f738517825b73c3dirk order_,exceptionInfo); 40731940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 407477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 40753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 40763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4077cd27554467f87f94cd4b4880530239264e379467dirkvoid Magick::Image::repage() 4078cd27554467f87f94cd4b4880530239264e379467dirk{ 4079cd27554467f87f94cd4b4880530239264e379467dirk modifyImage(); 4080cd27554467f87f94cd4b4880530239264e379467dirk options()->page(Geometry()); 4081cd27554467f87f94cd4b4880530239264e379467dirk image()->page.width = 0; 4082cd27554467f87f94cd4b4880530239264e379467dirk image()->page.height = 0; 4083cd27554467f87f94cd4b4880530239264e379467dirk image()->page.x = 0; 4084cd27554467f87f94cd4b4880530239264e379467dirk image()->page.y = 0; 4085cd27554467f87f94cd4b4880530239264e379467dirk} 4086cd27554467f87f94cd4b4880530239264e379467dirk 4087c3723b409bfe442938f3a58a16d4723216d3e1d6dirkvoid Magick::Image::resample(const Point &density_) 4088f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk{ 4089f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk MagickCore::Image 4090f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk *newImage; 4091f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk 4092f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk GetPPException; 4093c3723b409bfe442938f3a58a16d4723216d3e1d6dirk newImage=ResampleImage(constImage(),density_.x(),density_.y(), 4094c3723b409bfe442938f3a58a16d4723216d3e1d6dirk image()->filter,exceptionInfo); 4095f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk replaceImage(newImage); 409677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4097f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk} 4098f8c6db577bf34604c1b62d0ac8ae0a3010750493dirk 4099f8c6db577bf34604c1b62d0ac8ae0a3010750493dirkvoid Magick::Image::resize(const Geometry &geometry_) 41003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 41011940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 41021940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 41031940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41041940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 41051940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 41061940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 41071940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41081940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 41091940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=0, 41101940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=0; 41111940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41121940fe06f035ea32a4ec4df61f6897396877aa3cdirk // Calculate new size. This code should be supported using binary arguments 41131940fe06f035ea32a4ec4df61f6897396877aa3cdirk // in the ImageMagick library. 41141940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 41151940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 4116a615eae0816555030edf5e4dad48305e66669c6edirk 41171940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 41181940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=ResizeImage(constImage(),width,height,image()->filter, 4119e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 41201940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 412177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 41223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 41233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 41241940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::roll(const Geometry &roll_) 41253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 41261940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 41271940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 41281940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41291940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 41306e6af8ed20baf26aaf110518af6bca24f804cf86dirk newImage=RollImage(constImage(),roll_.xOff(),roll_.yOff(),exceptionInfo); 41311940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 413277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 41333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 41341940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41351940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::roll(const size_t columns_,const size_t rows_) 41363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 41371940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 41381940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 41391940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41401940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 41411940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=RollImage(constImage(),static_cast<ssize_t>(columns_), 4142e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk static_cast<ssize_t>(rows_),exceptionInfo); 41431940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 414477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 41453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 41463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 41471940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::rotate(const double degrees_) 41483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 41491940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 41501940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 41511940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41521940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4153e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=RotateImage(constImage(),degrees_,exceptionInfo); 41541940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 415577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 41563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 41571940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41586d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirkvoid Magick::Image::rotationalBlur(const double angle_) 41596d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk{ 41606d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk MagickCore::Image 41616d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk *newImage; 41626d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk 41636d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk GetPPException; 4164e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=RotationalBlurImage(constImage(),angle_,exceptionInfo); 41656d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk replaceImage(newImage); 416677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 41676d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk} 41686d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk 41696d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirkvoid Magick::Image::rotationalBlurChannel(const ChannelType channel_, 41706d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk const double angle_) 41716d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk{ 41726d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk MagickCore::Image 41736d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk *newImage; 41746d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk 41756d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk GetPPException; 41765fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 4177e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=RotationalBlurImage(constImage(),angle_,exceptionInfo); 41786d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk RestorePPChannelMask; 41796d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk replaceImage(newImage); 418077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 41816d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk} 41826d612cf866ac2d4bae9e21f95b035f8bf50c6f28dirk 41831940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::sample(const Geometry &geometry_) 41843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 41851940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 41861940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 41871940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41881940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 41891940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 41901940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 41911940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41921940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 41931940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=0, 41941940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=0; 41951940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41961940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 41971940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 41981940fe06f035ea32a4ec4df61f6897396877aa3cdirk 41991940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4200e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SampleImage(constImage(),width,height,exceptionInfo); 42011940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 420277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 42033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 42043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 42051940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::scale(const Geometry &geometry_) 42063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 42071940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 42081940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 42091940fe06f035ea32a4ec4df61f6897396877aa3cdirk 42101940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 42111940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 42121940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 42131940fe06f035ea32a4ec4df61f6897396877aa3cdirk 42141940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 42151940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=0, 42161940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=0; 42171940fe06f035ea32a4ec4df61f6897396877aa3cdirk 42181940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 42191940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 42201940fe06f035ea32a4ec4df61f6897396877aa3cdirk 42211940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4222e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ScaleImage(constImage(),width,height,exceptionInfo); 42231940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 422477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 42253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 42263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 42271940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::segment(const double clusterThreshold_, 42281940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double smoothingThreshold_) 42293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 42303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 42311940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 42321940fe06f035ea32a4ec4df61f6897396877aa3cdirk SegmentImage(image(),options()->quantizeColorSpace(), 42331940fe06f035ea32a4ec4df61f6897396877aa3cdirk (MagickBooleanType) options()->verbose(),clusterThreshold_, 4234e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk smoothingThreshold_,exceptionInfo); 4235e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SyncImage(image(),exceptionInfo); 423677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 42373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 42383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4239f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::selectiveBlur(const double radius_,const double sigma_, 4240f1775d8f60a3ce551a096140d7559d46ba33ac14dirk const double threshold_) 4241f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4242f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4243f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *newImage; 4244f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4245f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4246f1775d8f60a3ce551a096140d7559d46ba33ac14dirk newImage=SelectiveBlurImage(constImage(),radius_,sigma_,threshold_, 4247e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 4248f1775d8f60a3ce551a096140d7559d46ba33ac14dirk replaceImage(newImage); 424977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4250f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4251f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4252f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::selectiveBlurChannel(const ChannelType channel_, 4253f1775d8f60a3ce551a096140d7559d46ba33ac14dirk const double radius_,const double sigma_,const double threshold_) 4254f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4255f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4256f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *newImage; 4257f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4258f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 42595fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 4260f1775d8f60a3ce551a096140d7559d46ba33ac14dirk newImage=SelectiveBlurImage(constImage(),radius_,sigma_,threshold_, 4261e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 4262f1775d8f60a3ce551a096140d7559d46ba33ac14dirk RestorePPChannelMask; 4263f1775d8f60a3ce551a096140d7559d46ba33ac14dirk replaceImage(newImage); 426477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4265f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4266f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4267100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirkMagick::Image Magick::Image::separate(const ChannelType channel_) const 4268f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4269f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4270f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *image; 4271f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4272f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4273e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk image=SeparateImage(constImage(),channel_,exceptionInfo); 427477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4275f1775d8f60a3ce551a096140d7559d46ba33ac14dirk if (image == (MagickCore::Image *) NULL) 4276f1775d8f60a3ce551a096140d7559d46ba33ac14dirk return(Magick::Image()); 4277f1775d8f60a3ce551a096140d7559d46ba33ac14dirk else 4278f1775d8f60a3ce551a096140d7559d46ba33ac14dirk return(Magick::Image(image)); 4279f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4280f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4281f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::sepiaTone(const double threshold_) 4282f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4283f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4284f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *newImage; 4285f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4286f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4287e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SepiaToneImage(constImage(),threshold_,exceptionInfo); 4288f1775d8f60a3ce551a096140d7559d46ba33ac14dirk replaceImage(newImage); 428977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4290f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4291f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4292181b2a74351daea0388a98b8e37e13efc53d42c9dirkbool Magick::Image::setColorMetric(const Image &reference_) 4293181b2a74351daea0388a98b8e37e13efc53d42c9dirk{ 4294181b2a74351daea0388a98b8e37e13efc53d42c9dirk bool 4295181b2a74351daea0388a98b8e37e13efc53d42c9dirk status; 4296181b2a74351daea0388a98b8e37e13efc53d42c9dirk 4297181b2a74351daea0388a98b8e37e13efc53d42c9dirk Image 4298181b2a74351daea0388a98b8e37e13efc53d42c9dirk ref=reference_; 4299181b2a74351daea0388a98b8e37e13efc53d42c9dirk 4300181b2a74351daea0388a98b8e37e13efc53d42c9dirk GetPPException; 4301181b2a74351daea0388a98b8e37e13efc53d42c9dirk modifyImage(); 4302181b2a74351daea0388a98b8e37e13efc53d42c9dirk status=static_cast<bool>(SetImageColorMetric(image(),ref.constImage(), 4303181b2a74351daea0388a98b8e37e13efc53d42c9dirk exceptionInfo)); 4304181b2a74351daea0388a98b8e37e13efc53d42c9dirk ThrowImageException; 4305181b2a74351daea0388a98b8e37e13efc53d42c9dirk return(status); 4306181b2a74351daea0388a98b8e37e13efc53d42c9dirk} 4307181b2a74351daea0388a98b8e37e13efc53d42c9dirk 4308f1775d8f60a3ce551a096140d7559d46ba33ac14dirkMagick::Quantum *Magick::Image::setPixels(const ssize_t x_,const ssize_t y_, 4309f1775d8f60a3ce551a096140d7559d46ba33ac14dirk const size_t columns_,const size_t rows_) 4310f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4311f1775d8f60a3ce551a096140d7559d46ba33ac14dirk Quantum 4312f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *result; 4313f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4314f1775d8f60a3ce551a096140d7559d46ba33ac14dirk modifyImage(); 4315f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 43161d4a6951ace4a184f51cfd8c25b1586c6453be96cristy result=QueueAuthenticPixels(image(),x_,y_,columns_,rows_,exceptionInfo); 431777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4318f1775d8f60a3ce551a096140d7559d46ba33ac14dirk return(result); 4319f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4320f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 43211940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::shade(const double azimuth_,const double elevation_, 43221940fe06f035ea32a4ec4df61f6897396877aa3cdirk const bool colorShading_) 43233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 43241940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 43251940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 43261940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43271940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 43281940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=ShadeImage(constImage(),colorShading_ == true ? 4329e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk MagickTrue : MagickFalse,azimuth_,elevation_,exceptionInfo); 43301940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 433177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 43323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 43331940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43341940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::shadow(const double percent_opacity_,const double sigma_, 43351940fe06f035ea32a4ec4df61f6897396877aa3cdirk const ssize_t x_,const ssize_t y_) 43363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 43371940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 43381940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 43391940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43401940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 43411940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=ShadowImage(constImage(),percent_opacity_, sigma_,x_, y_, 4342e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 43431940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 434477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 43453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 43463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 43471940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::sharpen(const double radius_,const double sigma_) 43483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 43491940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 43501940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 43511940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43521940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4353e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SharpenImage(constImage(),radius_,sigma_,exceptionInfo); 43541940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 435577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 43563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 43571940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43581940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::sharpenChannel(const ChannelType channel_, 43591940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double radius_,const double sigma_) 43603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 43611940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 43621940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 43631940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43641940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 43655fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 4366e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SharpenImage(constImage(),radius_,sigma_,exceptionInfo); 43671940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 43681940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 436977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 43703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 43713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 43721940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::shave(const Geometry &geometry_) 43733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 43741940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 43751940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 43761940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43771940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 43781940fe06f035ea32a4ec4df61f6897396877aa3cdirk shaveInfo=geometry_; 43791940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43801940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4381e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ShaveImage(constImage(),&shaveInfo,exceptionInfo); 43821940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 438377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 43843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 43851940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43861940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::shear(const double xShearAngle_,const double yShearAngle_) 43873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 43881940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 43891940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 43901940fe06f035ea32a4ec4df61f6897396877aa3cdirk 43911940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4392e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ShearImage(constImage(),xShearAngle_,yShearAngle_,exceptionInfo); 43931940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 439477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 43953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 43963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4397f5801049887b9f9666f8c6a1fbca9a140a99407ddirkvoid Magick::Image::sigmoidalContrast(const bool sharpen_, 43981940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double contrast,const double midpoint) 43993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 44003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 44011940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 44021940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) SigmoidalContrastImage(image(),(MagickBooleanType) sharpen_,contrast, 4403e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk midpoint,exceptionInfo); 440477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 44053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 44063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 44071940fe06f035ea32a4ec4df61f6897396877aa3cdirkstd::string Magick::Image::signature(const bool force_) const 44083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 4409608580245cf9db16bc0275662329e23c3ce6da9bdirk return(_imgRef->signature(force_)); 44103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 44113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4412f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::sketch(const double radius_,const double sigma_, 4413f1775d8f60a3ce551a096140d7559d46ba33ac14dirk const double angle_) 4414f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4415f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4416f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *newImage; 4417f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4418f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4419e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SketchImage(constImage(),radius_,sigma_,angle_,exceptionInfo); 4420f1775d8f60a3ce551a096140d7559d46ba33ac14dirk replaceImage(newImage); 442177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4422f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4423f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 44241940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::solarize(const double factor_) 44253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 44263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 44271940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4428e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk SolarizeImage(image(),factor_,exceptionInfo); 442977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 44301940fe06f035ea32a4ec4df61f6897396877aa3cdirk} 44311940fe06f035ea32a4ec4df61f6897396877aa3cdirk 44321940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::sparseColor(const ChannelType channel_, 44331940fe06f035ea32a4ec4df61f6897396877aa3cdirk const SparseColorMethod method_,const size_t numberArguments_, 44341940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double *arguments_) 44351940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 44361940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 44371940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 44381940fe06f035ea32a4ec4df61f6897396877aa3cdirk 44391940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 44405fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 44411940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=SparseColorImage(constImage(),method_,numberArguments_,arguments_, 4442e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 44431940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 44441940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 444577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 44463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 44471940fe06f035ea32a4ec4df61f6897396877aa3cdirk 44481940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::splice(const Geometry &geometry_) 44493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 44501940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 44511940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 44521940fe06f035ea32a4ec4df61f6897396877aa3cdirk 44531940fe06f035ea32a4ec4df61f6897396877aa3cdirk RectangleInfo 44541940fe06f035ea32a4ec4df61f6897396877aa3cdirk spliceInfo=geometry_; 44551940fe06f035ea32a4ec4df61f6897396877aa3cdirk 44561940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4457e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SpliceImage(constImage(),&spliceInfo,exceptionInfo); 44581940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 445977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 44603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 44613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 44623b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirkvoid Magick::Image::splice(const Geometry &geometry_, 44633b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk const Color &backgroundColor_) 44643b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk{ 44653b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk backgroundColor(backgroundColor_); 44663b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk splice(geometry_); 44673b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk} 44683b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk 44693b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirkvoid Magick::Image::splice(const Geometry &geometry_, 44703b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk const Color &backgroundColor_,const GravityType gravity_) 44713b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk{ 44723b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk backgroundColor(backgroundColor_); 44733b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk image()->gravity=gravity_; 44743b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk splice(geometry_); 44753b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk} 44763b8649e1b0d73b281f3f4d3a005cc3c91960e1bcdirk 4477e11edabb5aa4d5be0301f8d652b33ef20889e76ddirkvoid Magick::Image::spread(const double amount_) 44788198a75baed6048bb2f5a2c04c773cce5e512c34cristy{ 44791940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 44801940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 44811940fe06f035ea32a4ec4df61f6897396877aa3cdirk 44821940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4483e3319c152ba05d1d0c198b61289f4926cfa3e904Cristy newImage=SpreadImage(constImage(),image()->interpolate,amount_,exceptionInfo); 44841940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 448577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 44868198a75baed6048bb2f5a2c04c773cce5e512c34cristy} 44878198a75baed6048bb2f5a2c04c773cce5e512c34cristy 4488100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirkMagick::ImageStatistics Magick::Image::statistics() const 44893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 449077328896b876314656427663695bc7b2c9be3f74dirk return(ImageStatistics(*this)); 44919f89a3fdb53e6226e8361b6d7b422f0387aa9431cristy} 44929f89a3fdb53e6226e8361b6d7b422f0387aa9431cristy 44931940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::stegano(const Image &watermark_) 44943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 44951940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 44961940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 44973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 44981940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4499e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=SteganoImage(constImage(),watermark_.constImage(),exceptionInfo); 45001940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 450177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 45041940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::stereo(const Image &rightImage_) 45053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 45061940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 45071940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 45083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 45091940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4510e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=StereoImage(constImage(),rightImage_.constImage(),exceptionInfo); 45111940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 451277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 45151940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::strip(void) 45163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 45173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 45181940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4519e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk StripImage(image(),exceptionInfo); 452077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4523c20fa63e4b57d62d33db77a5adc746ede902e5eddirkMagick::Image Magick::Image::subImageSearch(const Image &reference_, 4524c20fa63e4b57d62d33db77a5adc746ede902e5eddirk const MetricType metric_,Geometry *offset_,double *similarityMetric_, 4525c20fa63e4b57d62d33db77a5adc746ede902e5eddirk const double similarityThreshold) 4526c20fa63e4b57d62d33db77a5adc746ede902e5eddirk{ 4527c20fa63e4b57d62d33db77a5adc746ede902e5eddirk MagickCore::Image 4528c20fa63e4b57d62d33db77a5adc746ede902e5eddirk *newImage; 4529c20fa63e4b57d62d33db77a5adc746ede902e5eddirk 4530c20fa63e4b57d62d33db77a5adc746ede902e5eddirk RectangleInfo 4531c20fa63e4b57d62d33db77a5adc746ede902e5eddirk offset; 4532c20fa63e4b57d62d33db77a5adc746ede902e5eddirk 4533c20fa63e4b57d62d33db77a5adc746ede902e5eddirk GetPPException; 4534c20fa63e4b57d62d33db77a5adc746ede902e5eddirk newImage=SimilarityImage(image(),reference_.constImage(),metric_, 4535e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk similarityThreshold,&offset,similarityMetric_,exceptionInfo); 453677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4537c20fa63e4b57d62d33db77a5adc746ede902e5eddirk if (offset_ != (Geometry *) NULL) 4538c20fa63e4b57d62d33db77a5adc746ede902e5eddirk *offset_=offset; 4539c20fa63e4b57d62d33db77a5adc746ede902e5eddirk if (newImage == (MagickCore::Image *) NULL) 4540c20fa63e4b57d62d33db77a5adc746ede902e5eddirk return(Magick::Image()); 4541c20fa63e4b57d62d33db77a5adc746ede902e5eddirk else 4542c20fa63e4b57d62d33db77a5adc746ede902e5eddirk return(Magick::Image(newImage)); 4543c20fa63e4b57d62d33db77a5adc746ede902e5eddirk} 4544c20fa63e4b57d62d33db77a5adc746ede902e5eddirk 45451940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::swirl(const double degrees_) 45463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 45471940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 45481940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 45493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 45501940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 45511940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=SwirlImage(constImage(),degrees_,image()->interpolate, 4552e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 45531940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 455477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45561940fe06f035ea32a4ec4df61f6897396877aa3cdirk 45571940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::syncPixels(void) 45583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 45591940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 45601d4a6951ace4a184f51cfd8c25b1586c6453be96cristy (void) SyncAuthenticPixels(image(),exceptionInfo); 456177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 45641940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::texture(const Image &texture_) 45653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 45663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 45671940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4568e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk TextureImage(image(),texture_.constImage(),exceptionInfo); 456977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 45721940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::threshold(const double threshold_) 45733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 45743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 45751940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4576e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk BilevelImage(image(),threshold_,exceptionInfo); 457777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 45783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 45793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4580bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristyvoid Magick::Image::thumbnail(const Geometry &geometry_) 4581bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy{ 4582bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy MagickCore::Image 4583bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy *newImage; 4584bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy 4585bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy size_t 4586bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy height=rows(), 4587bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy width=columns(); 4588bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy 4589bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy ssize_t 4590bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy x=0, 4591bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy y=0; 4592bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy 4593bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 4594bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy &height); 4595bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy 4596bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy GetPPException; 4597e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ThumbnailImage(constImage(),width,height,exceptionInfo); 4598bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy replaceImage(newImage); 459977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4600bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy} 4601bd85b6da2c4e91fa1136faa0c88510fb4378a8c4cristy 4602f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::tint(const std::string opacity_) 4603f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4604f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4605f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *newImage; 4606f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4607f1775d8f60a3ce551a096140d7559d46ba33ac14dirk PixelInfo 4608f1775d8f60a3ce551a096140d7559d46ba33ac14dirk color; 4609f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4610f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4611f1775d8f60a3ce551a096140d7559d46ba33ac14dirk color=static_cast<PixelInfo>(constOptions()->fillColor()); 4612e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=TintImage(constImage(),opacity_.c_str(),&color,exceptionInfo); 4613f1775d8f60a3ce551a096140d7559d46ba33ac14dirk replaceImage(newImage); 461477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4615f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4616f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 46171940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transformOrigin(const double x_,const double y_) 46183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 46193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 46201940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->transformOrigin(x_,y_); 46213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 46223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46231940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transformReset(void) 46243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 46253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 46261940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->transformReset(); 46273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 46283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46291940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transformScale(const double sx_,const double sy_) 46303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 46313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 46321940fe06f035ea32a4ec4df61f6897396877aa3cdirk options()->transformScale(sx_,sy_); 46333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 46343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46352fcdcaf5f27967318e07808b67498cceac3b4125dirkvoid Magick::Image::transparent(const Color &color_,const bool inverse_) 46363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 46371940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 46381940fe06f035ea32a4ec4df61f6897396877aa3cdirk target; 46393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46401940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 46411940fe06f035ea32a4ec4df61f6897396877aa3cdirk color; 46423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46431940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!color_.isValid()) 464477328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 464577328896b876314656427663695bc7b2c9be3f74dirk "Color argument is invalid"); 46463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46471940fe06f035ea32a4ec4df61f6897396877aa3cdirk color=color_; 46481940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 46491940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) QueryColorCompliance(color.c_str(),AllCompliance,&target, 4650e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 46513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 46522fcdcaf5f27967318e07808b67498cceac3b4125dirk TransparentPaintImage(image(),&target,TransparentAlpha, 46532fcdcaf5f27967318e07808b67498cceac3b4125dirk inverse_ == true ? MagickTrue : MagickFalse,exceptionInfo); 465477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 46553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 46563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46571940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::transparentChroma(const Color &colorLow_, 46581940fe06f035ea32a4ec4df61f6897396877aa3cdirk const Color &colorHigh_) 46593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 46601940fe06f035ea32a4ec4df61f6897396877aa3cdirk std::string 46611940fe06f035ea32a4ec4df61f6897396877aa3cdirk colorHigh, 46621940fe06f035ea32a4ec4df61f6897396877aa3cdirk colorLow; 46633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46641940fe06f035ea32a4ec4df61f6897396877aa3cdirk PixelInfo 46651940fe06f035ea32a4ec4df61f6897396877aa3cdirk targetHigh, 46661940fe06f035ea32a4ec4df61f6897396877aa3cdirk targetLow; 46673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46681940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (!colorLow_.isValid() || !colorHigh_.isValid()) 466977328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::OptionError, 467077328896b876314656427663695bc7b2c9be3f74dirk "Color argument is invalid"); 46713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46721940fe06f035ea32a4ec4df61f6897396877aa3cdirk colorLow=colorLow_; 46731940fe06f035ea32a4ec4df61f6897396877aa3cdirk colorHigh=colorHigh_; 46743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 46751940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 46761940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) QueryColorCompliance(colorLow.c_str(),AllCompliance,&targetLow, 4677e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 46781940fe06f035ea32a4ec4df61f6897396877aa3cdirk (void) QueryColorCompliance(colorHigh.c_str(),AllCompliance,&targetHigh, 4679e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 46803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 46811940fe06f035ea32a4ec4df61f6897396877aa3cdirk TransparentPaintImageChroma(image(),&targetLow,&targetHigh,TransparentAlpha, 4682e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk MagickFalse,exceptionInfo); 468377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 46843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 46853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4686982785cc04fa211e60b4c1ee8f28996c23c06e80dirkvoid Magick::Image::transpose(void) 4687982785cc04fa211e60b4c1ee8f28996c23c06e80dirk{ 4688982785cc04fa211e60b4c1ee8f28996c23c06e80dirk MagickCore::Image 4689982785cc04fa211e60b4c1ee8f28996c23c06e80dirk *newImage; 4690982785cc04fa211e60b4c1ee8f28996c23c06e80dirk 4691982785cc04fa211e60b4c1ee8f28996c23c06e80dirk GetPPException; 4692e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=TransposeImage(constImage(),exceptionInfo); 4693982785cc04fa211e60b4c1ee8f28996c23c06e80dirk replaceImage(newImage); 469477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4695982785cc04fa211e60b4c1ee8f28996c23c06e80dirk} 4696982785cc04fa211e60b4c1ee8f28996c23c06e80dirk 4697982785cc04fa211e60b4c1ee8f28996c23c06e80dirkvoid Magick::Image::transverse(void) 4698982785cc04fa211e60b4c1ee8f28996c23c06e80dirk{ 4699982785cc04fa211e60b4c1ee8f28996c23c06e80dirk MagickCore::Image 4700982785cc04fa211e60b4c1ee8f28996c23c06e80dirk *newImage; 4701982785cc04fa211e60b4c1ee8f28996c23c06e80dirk 4702982785cc04fa211e60b4c1ee8f28996c23c06e80dirk GetPPException; 4703e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=TransverseImage(constImage(),exceptionInfo); 4704982785cc04fa211e60b4c1ee8f28996c23c06e80dirk replaceImage(newImage); 470577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4706982785cc04fa211e60b4c1ee8f28996c23c06e80dirk} 4707982785cc04fa211e60b4c1ee8f28996c23c06e80dirk 47081940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::trim(void) 47093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 47101940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 47111940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 47123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 47131940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4714e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=TrimImage(constImage(),exceptionInfo); 47151940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 471677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 47173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 47183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4719100c62ceee252ed475fca6a57b3dbaa3d27d2ed9dirkMagick::Image Magick::Image::uniqueColors(void) const 4720f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4721f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4722f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *image; 4723f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4724f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4725e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk image=UniqueImageColors(constImage(),exceptionInfo); 472677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4727f1775d8f60a3ce551a096140d7559d46ba33ac14dirk if (image == (MagickCore::Image *) NULL) 4728f1775d8f60a3ce551a096140d7559d46ba33ac14dirk return(Magick::Image()); 4729f1775d8f60a3ce551a096140d7559d46ba33ac14dirk else 4730f1775d8f60a3ce551a096140d7559d46ba33ac14dirk return(Magick::Image(image)); 4731f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4732f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 47331940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::unsharpmask(const double radius_,const double sigma_, 47341940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double amount_,const double threshold_) 47353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 47361940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 47371940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 47383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 47391940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 47401940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=UnsharpMaskImage(constImage(),radius_,sigma_,amount_,threshold_, 4741e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 47421940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 474377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 47443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 47453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 47461940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::unsharpmaskChannel(const ChannelType channel_, 47471940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double radius_,const double sigma_,const double amount_, 47481940fe06f035ea32a4ec4df61f6897396877aa3cdirk const double threshold_) 47493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 47501940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 47511940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 47521940fe06f035ea32a4ec4df61f6897396877aa3cdirk 47531940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 47545fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 47551940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=UnsharpMaskImage(constImage(),radius_,sigma_,amount_,threshold_, 4756e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 47571940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 47581940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 475977328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 47603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 47613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4762f1775d8f60a3ce551a096140d7559d46ba33ac14dirkvoid Magick::Image::vignette(const double radius_,const double sigma_, 4763f1775d8f60a3ce551a096140d7559d46ba33ac14dirk const ssize_t x_,const ssize_t y_) 4764f1775d8f60a3ce551a096140d7559d46ba33ac14dirk{ 4765f1775d8f60a3ce551a096140d7559d46ba33ac14dirk MagickCore::Image 4766f1775d8f60a3ce551a096140d7559d46ba33ac14dirk *newImage; 4767f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 4768f1775d8f60a3ce551a096140d7559d46ba33ac14dirk GetPPException; 4769e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=VignetteImage(constImage(),radius_,sigma_,x_,y_,exceptionInfo); 4770f1775d8f60a3ce551a096140d7559d46ba33ac14dirk replaceImage(newImage); 477177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 4772f1775d8f60a3ce551a096140d7559d46ba33ac14dirk} 4773f1775d8f60a3ce551a096140d7559d46ba33ac14dirk 47741940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::wave(const double amplitude_,const double wavelength_) 47753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 47761940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 47771940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 47783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 47791940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 47801940fe06f035ea32a4ec4df61f6897396877aa3cdirk newImage=WaveImage(constImage(),amplitude_,wavelength_,image()->interpolate, 4781e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 47821940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 478377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 47843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 47853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4786906c77aa619f7206e279cc957e20c0aef5350a9bdirkvoid Magick::Image::waveletDenoise(const double threshold_, 4787906c77aa619f7206e279cc957e20c0aef5350a9bdirk const double softness_) 47885afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk{ 47895afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk MagickCore::Image 47905afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk *newImage; 47915afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk 47925afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk GetPPException; 4793906c77aa619f7206e279cc957e20c0aef5350a9bdirk newImage=WaveletDenoiseImage(constImage(),threshold_,softness_, 4794906c77aa619f7206e279cc957e20c0aef5350a9bdirk exceptionInfo); 47955afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk replaceImage(newImage); 47965afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk ThrowImageException; 47975afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk} 47985afc3a6a4c6cc8a2226bbd96ea60c80d975b56ccdirk 47991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::whiteThreshold(const std::string &threshold_) 48003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48011940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 48021940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4803e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk WhiteThresholdImage(image(),threshold_.c_str(),exceptionInfo); 480477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48071940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::whiteThresholdChannel(const ChannelType channel_, 48081940fe06f035ea32a4ec4df61f6897396877aa3cdirk const std::string &threshold_) 48093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48101940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 48111940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 48125fed14e9fbe78e1ec8fe519505d0ac097a7878d2dirk GetAndSetPPChannelMask(channel_); 4813e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk WhiteThresholdImage(image(),threshold_.c_str(),exceptionInfo); 48141940fe06f035ea32a4ec4df61f6897396877aa3cdirk RestorePPChannelMask; 481577328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48181940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::write(Blob *blob_) 48193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48201940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 4821a713b822f9efeef4aeb33c88084b77ca2c596b77dirk length=0; 48223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48231940fe06f035ea32a4ec4df61f6897396877aa3cdirk void 48241940fe06f035ea32a4ec4df61f6897396877aa3cdirk *data; 48253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48261940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 48271940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4828e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk data=ImagesToBlob(constImageInfo(),image(),&length,exceptionInfo); 4829a713b822f9efeef4aeb33c88084b77ca2c596b77dirk if (length > 0) 4830a713b822f9efeef4aeb33c88084b77ca2c596b77dirk blob_->updateNoCopy(data,length,Blob::MallocAllocator); 483177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48341940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::write(Blob *blob_,const std::string &magick_) 48353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48361940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 4837a713b822f9efeef4aeb33c88084b77ca2c596b77dirk length=0; 48383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48391940fe06f035ea32a4ec4df61f6897396877aa3cdirk void 48401940fe06f035ea32a4ec4df61f6897396877aa3cdirk *data; 48413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48421940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 48431940fe06f035ea32a4ec4df61f6897396877aa3cdirk magick(magick_); 48441940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4845e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk data=ImagesToBlob(constImageInfo(),image(),&length,exceptionInfo); 4846a713b822f9efeef4aeb33c88084b77ca2c596b77dirk if (length > 0) 4847a713b822f9efeef4aeb33c88084b77ca2c596b77dirk blob_->updateNoCopy(data,length,Blob::MallocAllocator); 484877328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48511940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::write(Blob *blob_,const std::string &magick_, 48521940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t depth_) 48533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48541940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 4855a713b822f9efeef4aeb33c88084b77ca2c596b77dirk length=0; 48563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48571940fe06f035ea32a4ec4df61f6897396877aa3cdirk void 48581940fe06f035ea32a4ec4df61f6897396877aa3cdirk *data; 48593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy modifyImage(); 48611940fe06f035ea32a4ec4df61f6897396877aa3cdirk magick(magick_); 48621940fe06f035ea32a4ec4df61f6897396877aa3cdirk depth(depth_); 48631940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4864e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk data=ImagesToBlob(constImageInfo(),image(),&length,exceptionInfo); 4865a713b822f9efeef4aeb33c88084b77ca2c596b77dirk if (length > 0) 4866a713b822f9efeef4aeb33c88084b77ca2c596b77dirk blob_->updateNoCopy(data,length,Blob::MallocAllocator); 486777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48701940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::write(const ssize_t x_,const ssize_t y_, 48711940fe06f035ea32a4ec4df61f6897396877aa3cdirk const size_t columns_,const size_t rows_,const std::string &map_, 48721940fe06f035ea32a4ec4df61f6897396877aa3cdirk const StorageType type_,void *pixels_) 48733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48741940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 48751940fe06f035ea32a4ec4df61f6897396877aa3cdirk ExportImagePixels(image(),x_,y_,columns_,rows_,map_.c_str(),type_,pixels_, 4876e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk exceptionInfo); 487777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 48801940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::write(const std::string &imageSpec_) 48813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 48821940fe06f035ea32a4ec4df61f6897396877aa3cdirk modifyImage(); 48831940fe06f035ea32a4ec4df61f6897396877aa3cdirk fileName(imageSpec_); 48841940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4885e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk WriteImage(constImageInfo(),image(),exceptionInfo); 488677328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 48873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 48883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 4889af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirkvoid Magick::Image::writeMask(const Magick::Image &mask_) 4890af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk{ 4891af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk mask(mask_,WritePixelMask); 4892af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk} 4893af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 4894af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirkMagick::Image Magick::Image::writeMask(void) const 4895af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk{ 4896af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk return(mask(WritePixelMask)); 4897af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk} 4898af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 48991940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::writePixels(const Magick::QuantumType quantum_, 49001940fe06f035ea32a4ec4df61f6897396877aa3cdirk unsigned char *destination_) 49013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy QuantumInfo 49033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *quantum_info; 49043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49055f766ef8b0cd9906c2c3a56d845828380a251073cristy quantum_info=AcquireQuantumInfo(imageInfo(),image()); 49061940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 49073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ExportQuantumPixels(image(),(MagickCore::CacheView *) NULL,quantum_info, 4908e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk quantum_,destination_, exceptionInfo); 49093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy quantum_info=DestroyQuantumInfo(quantum_info); 491077328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 49113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49131940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::zoom(const Geometry &geometry_) 49141940fe06f035ea32a4ec4df61f6897396877aa3cdirk{ 49151940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 49161940fe06f035ea32a4ec4df61f6897396877aa3cdirk *newImage; 49173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49181940fe06f035ea32a4ec4df61f6897396877aa3cdirk size_t 49191940fe06f035ea32a4ec4df61f6897396877aa3cdirk height=rows(), 49201940fe06f035ea32a4ec4df61f6897396877aa3cdirk width=columns(); 49213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49221940fe06f035ea32a4ec4df61f6897396877aa3cdirk ssize_t 49231940fe06f035ea32a4ec4df61f6897396877aa3cdirk x=0, 49241940fe06f035ea32a4ec4df61f6897396877aa3cdirk y=0; 49251940fe06f035ea32a4ec4df61f6897396877aa3cdirk 49261940fe06f035ea32a4ec4df61f6897396877aa3cdirk ParseMetaGeometry(static_cast<std::string>(geometry_).c_str(),&x,&y,&width, 49271940fe06f035ea32a4ec4df61f6897396877aa3cdirk &height); 49281940fe06f035ea32a4ec4df61f6897396877aa3cdirk 49291940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4930e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk newImage=ResizeImage(constImage(),width,height,image()->filter,exceptionInfo); 49311940fe06f035ea32a4ec4df61f6897396877aa3cdirk replaceImage(newImage); 493277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 49333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49351940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Image::Image(MagickCore::Image *image_) 493607f84e72b205d18eb8ad35380af95351d9f0a1a3dirk : _imgRef(new ImageRef(image_)) 49373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49391940fe06f035ea32a4ec4df61f6897396877aa3cdirk 49401940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickCore::Image *&Magick::Image::image(void) 49413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49421940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->image()); 49433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49451940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst MagickCore::Image *Magick::Image::constImage(void) const 49463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49471940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->image()); 49483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49491940fe06f035ea32a4ec4df61f6897396877aa3cdirk 49501940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickCore::ImageInfo *Magick::Image::imageInfo(void) 49513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49521940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->options()->imageInfo()); 49533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49551940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst MagickCore::ImageInfo *Magick::Image::constImageInfo(void) const 49563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49571940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->options()->imageInfo()); 49583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49591940fe06f035ea32a4ec4df61f6897396877aa3cdirk 49601940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagick::Options *Magick::Image::options(void) 49613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49621940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->options()); 49633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49651940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst Magick::Options *Magick::Image::constOptions(void) const 49663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49671940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->options()); 49683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49691940fe06f035ea32a4ec4df61f6897396877aa3cdirk 49701940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickCore::QuantizeInfo *Magick::Image::quantizeInfo(void) 49713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49721940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->options()->quantizeInfo()); 49733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49751940fe06f035ea32a4ec4df61f6897396877aa3cdirkconst MagickCore::QuantizeInfo *Magick::Image::constQuantizeInfo(void) const 49763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49771940fe06f035ea32a4ec4df61f6897396877aa3cdirk return(_imgRef->options()->quantizeInfo()); 49783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49801940fe06f035ea32a4ec4df61f6897396877aa3cdirkvoid Magick::Image::modifyImage(void) 49813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49824b39a1ba9e9e98ae9847be7f1dee1034eab7076fdirk if (!_imgRef->isShared()) 4983debd02e3cb441e34f5b63bbfbf69e404f8135159dirk return; 49843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49851940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 4986e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk replaceImage(CloneImage(image(),0,0,MagickTrue,exceptionInfo)); 498777328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 49883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 49893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49901940fe06f035ea32a4ec4df61f6897396877aa3cdirkMagickCore::Image *Magick::Image::replaceImage(MagickCore::Image *replacement_) 49913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 49921940fe06f035ea32a4ec4df61f6897396877aa3cdirk MagickCore::Image 49931940fe06f035ea32a4ec4df61f6897396877aa3cdirk *image; 49943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 49951940fe06f035ea32a4ec4df61f6897396877aa3cdirk if (replacement_) 4996debd02e3cb441e34f5b63bbfbf69e404f8135159dirk image=replacement_; 49971940fe06f035ea32a4ec4df61f6897396877aa3cdirk else 49983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy { 49991940fe06f035ea32a4ec4df61f6897396877aa3cdirk GetPPException; 5000e31feb8a39ea937a6328da579085cd2ee66ab4c0dirk image=AcquireImage(constImageInfo(),exceptionInfo); 500177328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 50023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy } 50033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 50041888443d44c6a29f8d0836521a9c6a34b3a12006dirk _imgRef=ImageRef::replaceImage(_imgRef,image); 5005debd02e3cb441e34f5b63bbfbf69e404f8135159dirk return(image); 500695f389652b69ee5487f18e744b7f54dcda1c733cdirk} 500795f389652b69ee5487f18e744b7f54dcda1c733cdirk 5008671b5d721987b2a12d84b656de888be1c99aa881dirkvoid Magick::Image::read(MagickCore::Image *image, 5009671b5d721987b2a12d84b656de888be1c99aa881dirk MagickCore::ExceptionInfo *exceptionInfo) 5010671b5d721987b2a12d84b656de888be1c99aa881dirk{ 5011671b5d721987b2a12d84b656de888be1c99aa881dirk // Ensure that multiple image frames were not read. 5012671b5d721987b2a12d84b656de888be1c99aa881dirk if (image != (MagickCore::Image *) NULL && 5013671b5d721987b2a12d84b656de888be1c99aa881dirk image->next != (MagickCore::Image *) NULL) 5014671b5d721987b2a12d84b656de888be1c99aa881dirk { 5015671b5d721987b2a12d84b656de888be1c99aa881dirk MagickCore::Image 5016671b5d721987b2a12d84b656de888be1c99aa881dirk *next; 5017671b5d721987b2a12d84b656de888be1c99aa881dirk 5018671b5d721987b2a12d84b656de888be1c99aa881dirk // Destroy any extra image frames 5019671b5d721987b2a12d84b656de888be1c99aa881dirk next=image->next; 5020671b5d721987b2a12d84b656de888be1c99aa881dirk image->next=(MagickCore::Image *) NULL; 5021671b5d721987b2a12d84b656de888be1c99aa881dirk next->previous=(MagickCore::Image *) NULL; 5022671b5d721987b2a12d84b656de888be1c99aa881dirk DestroyImageList(next); 5023671b5d721987b2a12d84b656de888be1c99aa881dirk } 5024671b5d721987b2a12d84b656de888be1c99aa881dirk replaceImage(image); 5025671b5d721987b2a12d84b656de888be1c99aa881dirk if (exceptionInfo->severity == MagickCore::UndefinedException && 5026671b5d721987b2a12d84b656de888be1c99aa881dirk image == (MagickCore::Image *) NULL) 5027671b5d721987b2a12d84b656de888be1c99aa881dirk { 5028671b5d721987b2a12d84b656de888be1c99aa881dirk (void) MagickCore::DestroyExceptionInfo(exceptionInfo); 502907f84e72b205d18eb8ad35380af95351d9f0a1a3dirk if (!quiet()) 503077328896b876314656427663695bc7b2c9be3f74dirk throwExceptionExplicit(MagickCore::ImageWarning, 503177328896b876314656427663695bc7b2c9be3f74dirk "No image was loaded."); 5032671b5d721987b2a12d84b656de888be1c99aa881dirk } 503377328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 5034671b5d721987b2a12d84b656de888be1c99aa881dirk} 5035671b5d721987b2a12d84b656de888be1c99aa881dirk 5036223843f66554713ee926b09f958ff6bfdb5acb61dirkvoid Magick::Image::floodFill(const ssize_t x_,const ssize_t y_, 5037223843f66554713ee926b09f958ff6bfdb5acb61dirk const Magick::Image *fillPattern_,const Magick::Color &fill_, 5038223843f66554713ee926b09f958ff6bfdb5acb61dirk const MagickCore::PixelInfo *target_,const bool invert_) 5039223843f66554713ee926b09f958ff6bfdb5acb61dirk{ 5040223843f66554713ee926b09f958ff6bfdb5acb61dirk Magick::Color 5041223843f66554713ee926b09f958ff6bfdb5acb61dirk fillColor; 5042223843f66554713ee926b09f958ff6bfdb5acb61dirk 5043223843f66554713ee926b09f958ff6bfdb5acb61dirk MagickCore::Image 5044223843f66554713ee926b09f958ff6bfdb5acb61dirk *fillPattern; 5045223843f66554713ee926b09f958ff6bfdb5acb61dirk 5046223843f66554713ee926b09f958ff6bfdb5acb61dirk // Set drawing fill pattern or fill color 5047223843f66554713ee926b09f958ff6bfdb5acb61dirk fillColor=options()->fillColor(); 5048223843f66554713ee926b09f958ff6bfdb5acb61dirk fillPattern=(MagickCore::Image *)NULL; 5049223843f66554713ee926b09f958ff6bfdb5acb61dirk if (options()->fillPattern() != (MagickCore::Image *)NULL) 5050223843f66554713ee926b09f958ff6bfdb5acb61dirk { 5051223843f66554713ee926b09f958ff6bfdb5acb61dirk GetPPException; 5052223843f66554713ee926b09f958ff6bfdb5acb61dirk fillPattern=CloneImage(options()->fillPattern(),0,0,MagickTrue, 5053223843f66554713ee926b09f958ff6bfdb5acb61dirk exceptionInfo); 505477328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 5055223843f66554713ee926b09f958ff6bfdb5acb61dirk } 5056223843f66554713ee926b09f958ff6bfdb5acb61dirk 5057223843f66554713ee926b09f958ff6bfdb5acb61dirk if (fillPattern_ == (Magick::Image *)NULL) 5058223843f66554713ee926b09f958ff6bfdb5acb61dirk { 5059223843f66554713ee926b09f958ff6bfdb5acb61dirk options()->fillPattern((MagickCore::Image *)NULL); 5060223843f66554713ee926b09f958ff6bfdb5acb61dirk options()->fillColor(fill_); 5061223843f66554713ee926b09f958ff6bfdb5acb61dirk } 5062223843f66554713ee926b09f958ff6bfdb5acb61dirk else 5063223843f66554713ee926b09f958ff6bfdb5acb61dirk options()->fillPattern(fillPattern_->constImage()); 5064223843f66554713ee926b09f958ff6bfdb5acb61dirk 5065223843f66554713ee926b09f958ff6bfdb5acb61dirk GetPPException; 5066223843f66554713ee926b09f958ff6bfdb5acb61dirk (void) FloodfillPaintImage(image(),options()->drawInfo(), 5067223843f66554713ee926b09f958ff6bfdb5acb61dirk target_,static_cast<ssize_t>(x_),static_cast<ssize_t>(y_), 5068223843f66554713ee926b09f958ff6bfdb5acb61dirk (MagickBooleanType) invert_,exceptionInfo); 5069223843f66554713ee926b09f958ff6bfdb5acb61dirk 5070223843f66554713ee926b09f958ff6bfdb5acb61dirk options()->fillColor(fillColor); 5071223843f66554713ee926b09f958ff6bfdb5acb61dirk options()->fillPattern(fillPattern); 507277328896b876314656427663695bc7b2c9be3f74dirk ThrowImageException; 5073223843f66554713ee926b09f958ff6bfdb5acb61dirk} 5074af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 5075af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirkvoid Magick::Image::mask(const Magick::Image &mask_,const PixelMask type) 5076af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk{ 5077af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk modifyImage(); 5078af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 5079af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk GetPPException; 5080af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk if (mask_.isValid()) 5081af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk SetImageMask(image(),type,mask_.constImage(),exceptionInfo); 5082af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk else 5083af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk SetImageMask(image(),type,(MagickCore::Image *) NULL, 5084af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk exceptionInfo); 5085af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk ThrowImageException; 5086af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk} 5087af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 5088af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirkMagick::Image Magick::Image::mask(const PixelMask type) const 5089af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk{ 5090af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk MagickCore::Image 5091af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk *image; 5092af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 5093af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk GetPPException; 5094af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk image = GetImageMask(constImage(),type,exceptionInfo); 5095af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk ThrowImageException; 5096af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk 5097af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk if (image == (MagickCore::Image *) NULL) 5098af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk return(Magick::Image()); 5099af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk else 5100af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk return(Magick::Image(image)); 5101af131f1a1e0ca45f26b05fa7c77c90985bca1a07dirk} 5102