From: dirk Date: Mon, 14 Sep 2015 19:58:35 +0000 (+0200) Subject: Added new constructor to the Image class of Magick++ to copy part of the image. X-Git-Tag: 7.0.1-0~630^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fae20619a47497056073e51720a3517d387cc7de;p=imagemagick Added new constructor to the Image class of Magick++ to copy part of the image. --- diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index b7fc60670..98030a9a1 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -203,6 +203,30 @@ Magick::Image::Image(const Image &image_) _imgRef->increase(); } +Magick::Image::Image(const Image &image_,const Geometry &geometry_) + : _imgRef(new ImageRef) +{ + const RectangleInfo + geometry=geometry_; + + OffsetInfo + offset; + + MagickCore::Image + *image; + + GetPPException; + image=CloneImage(image_.constImage(),geometry_.width(),geometry_.height(), + MagickTrue,exceptionInfo); + replaceImage(image); + _imgRef->options(new Options(*image_.constOptions())); + offset.x=0; + offset.y=0; + (void) CopyImagePixels(image,image_.constImage(),&geometry,&offset, + exceptionInfo); + ThrowImageException; +} + Magick::Image::Image(const size_t width_,const size_t height_, const std::string &map_,const StorageType type_,const void *pixels_) : _imgRef(new ImageRef) diff --git a/Magick++/lib/Magick++/Image.h b/Magick++/lib/Magick++/Image.h index b397ff8f6..6314d02e8 100644 --- a/Magick++/lib/Magick++/Image.h +++ b/Magick++/lib/Magick++/Image.h @@ -64,15 +64,15 @@ namespace Magick Image(const Blob &blob_,const Geometry &size_); // Construct Image of specified size and depth from in-memory BLOB - Image(const Blob &blob_,const Geometry &size,const size_t depth); + Image(const Blob &blob_,const Geometry &size_,const size_t depth_); // Construct Image of specified size, depth, and format from // in-memory BLOB - Image(const Blob &blob_,const Geometry &size,const size_t depth_, + Image(const Blob &blob_,const Geometry &size_,const size_t depth_, const std::string &magick_); // Construct Image of specified size, and format from in-memory BLOB - Image(const Blob &blob_,const Geometry &size,const std::string &magick_); + Image(const Blob &blob_,const Geometry &size_,const std::string &magick_); // Construct a blank image canvas of specified size and color Image(const Geometry &size_,const Color &color_); @@ -80,6 +80,9 @@ namespace Magick // Copy constructor Image(const Image &image_); + // Copy constructor to copy part of the image + Image(const Image &image_,const Geometry &geometry_); + // Construct an image based on an array of raw pixels, of // specified type and mapping, in memory Image(const size_t width_,const size_t height_,const std::string &map_,