]> granicus.if.org Git - imagemagick/commitdiff
Added new constructor to the Image class of Magick++ to copy part of the image.
authordirk <dirk@git.imagemagick.org>
Mon, 14 Sep 2015 19:58:35 +0000 (21:58 +0200)
committerdirk <dirk@git.imagemagick.org>
Mon, 14 Sep 2015 19:58:35 +0000 (21:58 +0200)
Magick++/lib/Image.cpp
Magick++/lib/Magick++/Image.h

index b7fc606709b47c9462bd593b58d6a8932352832e..98030a9a10844a4b948ccef3e3e90d1b4547cf67 100644 (file)
@@ -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)
index b397ff8f697960af5819dea34dfb27cb5056b77e..6314d02e82456a8b0f2fa4595fde56b68cdd217c 100644 (file)
@@ -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_,