📄 stl.h
字号:
void operator()( Image &image_ ) const; private: bool _matteFlag; }; // Transparent color class MagickDLLDecl matteColorImage : public std::unary_function<Image&,void> { public: matteColorImage( const Color &matteColor_ ); void operator()( Image &image_ ) const; private: Color _matteColor; }; // Indicate that image is black and white class MagickDLLDecl monochromeImage : public std::unary_function<Image&,void> { public: monochromeImage( const bool monochromeFlag_ ); void operator()( Image &image_ ) const; private: bool _monochromeFlag; }; // Pen color class MagickDLLDecl penColorImage : public std::unary_function<Image&,void> { public: penColorImage( const Color &penColor_ ); void operator()( Image &image_ ) const; private: Color _penColor; }; // Pen texture image. class MagickDLLDecl penTextureImage : public std::unary_function<Image&,void> { public: penTextureImage( const Image &penTexture_ ); void operator()( Image &image_ ) const; private: Image _penTexture; }; // Set pixel color at location x & y. class MagickDLLDecl pixelColorImage : public std::unary_function<Image&,void> { public: pixelColorImage( const unsigned int x_, const unsigned int y_, const Color &color_); void operator()( Image &image_ ) const; private: unsigned int _x; unsigned int _y; Color _color; }; // Postscript page size. class MagickDLLDecl pageImage : public std::unary_function<Image&,void> { public: pageImage( const Geometry &pageSize_ ); void operator()( Image &image_ ) const; private: Geometry _pageSize; }; // JPEG/MIFF/PNG compression level (default 75). class MagickDLLDecl qualityImage : public std::unary_function<Image&,void> { public: qualityImage( const unsigned int quality_ ); void operator()( Image &image_ ) const; private: unsigned int _quality; }; // Maximum number of colors to quantize to class MagickDLLDecl quantizeColorsImage : public std::unary_function<Image&,void> { public: quantizeColorsImage( const unsigned int colors_ ); void operator()( Image &image_ ) const; private: unsigned int _colors; }; // Colorspace to quantize in. class MagickDLLDecl quantizeColorSpaceImage : public std::unary_function<Image&,void> { public: quantizeColorSpaceImage( const ColorspaceType colorSpace_ ); void operator()( Image &image_ ) const; private: ColorspaceType _colorSpace; }; // Dither image during quantization (default true). class MagickDLLDecl quantizeDitherImage : public std::unary_function<Image&,void> { public: quantizeDitherImage( const bool ditherFlag_ ); void operator()( Image &image_ ) const; private: bool _ditherFlag; }; // Quantization tree-depth class MagickDLLDecl quantizeTreeDepthImage : public std::unary_function<Image&,void> { public: quantizeTreeDepthImage( const unsigned int treeDepth_ ); void operator()( Image &image_ ) const; private: unsigned int _treeDepth; }; // The type of rendering intent class MagickDLLDecl renderingIntentImage : public std::unary_function<Image&,void> { public: renderingIntentImage( const RenderingIntent renderingIntent_ ); void operator()( Image &image_ ) const; private: RenderingIntent _renderingIntent; }; // Units of image resolution class MagickDLLDecl resolutionUnitsImage : public std::unary_function<Image&,void> { public: resolutionUnitsImage( const ResolutionType resolutionUnits_ ); void operator()( Image &image_ ) const; private: ResolutionType _resolutionUnits; }; // Image scene number class MagickDLLDecl sceneImage : public std::unary_function<Image&,void> { public: sceneImage( const unsigned int scene_ ); void operator()( Image &image_ ) const; private: unsigned int _scene; }; // adjust the image contrast with a non-linear sigmoidal contrast algorithm class MagickDLLDecl sigmoidalContrastImage : public std::unary_function<Image&,void> { public: sigmoidalContrastImage( const unsigned int sharpen_, const double contrast, const double midpoint = QuantumRange / 2.0 ); void operator()( Image &image_ ) const; private: unsigned int _sharpen; double contrast; double midpoint; }; // Width and height of a raw image class MagickDLLDecl sizeImage : public std::unary_function<Image&,void> { public: sizeImage( const Geometry &geometry_ ); void operator()( Image &image_ ) const; private: Geometry _geometry; }; // Subimage of an image sequence class MagickDLLDecl subImageImage : public std::unary_function<Image&,void> { public: subImageImage( const unsigned int subImage_ ); void operator()( Image &image_ ) const; private: unsigned int _subImage; }; // Number of images relative to the base image class MagickDLLDecl subRangeImage : public std::unary_function<Image&,void> { public: subRangeImage( const unsigned int subRange_ ); void operator()( Image &image_ ) const; private: unsigned int _subRange; }; // Tile name class MagickDLLDecl tileNameImage : public std::unary_function<Image&,void> { public: tileNameImage( const std::string &tileName_ ); void operator()( Image &image_ ) const; private: std::string _tileName; }; // Image storage type class MagickDLLDecl typeImage : public std::unary_function<Image&,void> { public: typeImage( const ImageType type_ ); void operator()( Image &image_ ) const; private: Magick::ImageType _type; }; // Print detailed information about the image class MagickDLLDecl verboseImage : public std::unary_function<Image&,void> { public: verboseImage( const bool verbose_ ); void operator()( Image &image_ ) const; private: bool _verbose; }; // FlashPix viewing parameters class MagickDLLDecl viewImage : public std::unary_function<Image&,void> { public: viewImage( const std::string &view_ ); void operator()( Image &image_ ) const; private: std::string _view; }; // X11 display to display to, obtain fonts from, or to capture // image from class MagickDLLDecl x11DisplayImage : public std::unary_function<Image&,void> { public: x11DisplayImage( const std::string &display_ ); void operator()( Image &image_ ) const; private: std::string _display; }; ////////////////////////////////////////////////////////// // // Implementation template definitions. Not for end-use. // ////////////////////////////////////////////////////////// // Link images together into an image list based on the ordering of // the container implied by the iterator. This step is done in // preparation for use with ImageMagick functions which operate on // lists of images. // Images are selected by range, first_ to last_ so that a subset of // the container may be selected. Specify first_ via the // container's begin() method and last_ via the container's end() // method in order to specify the entire container. template <class InputIterator> void linkImages( InputIterator first_, InputIterator last_ ) { MagickLib::Image* previous = 0; int scene = 0; for ( InputIterator iter = first_; iter != last_; ++iter ) { // Unless we reduce the reference count to one, the same image // structure may occur more than once in the container, causing // the linked list to fail. iter->modifyImage(); MagickLib::Image* current = iter->image(); current->previous = previous; current->next = 0; if ( previous != 0) previous->next = current; current->scene=scene; ++scene; previous = current; } } // Remove links added by linkImages. This should be called after the // ImageMagick function call has completed to reset the image list // back to its pristine un-linked state. template <class InputIterator> void unlinkImages( InputIterator first_, InputIterator last_ ) { for( InputIterator iter = first_; iter != last_; ++iter ) { MagickLib::Image* image = iter->image(); image->previous = 0; image->next = 0; } } // Insert images in image list into existing container (appending to container) // The images should not be deleted since only the image ownership is passed. // The options are copied into the object. template <class Container> void insertImages( Container *sequence_, MagickLib::Image* images_ ) { MagickLib::Image *image = images_; if ( image ) { do { MagickLib::Image* next_image = image->next; image->next = 0; if (next_image != 0) next_image->previous=0; sequence_->push_back( Magick::Image( image ) ); image=next_image; } while( image ); return; } } /////////////////////////////////////////////////////////////////// // // Template definitions for documented API // /////////////////////////////////////////////////////////////////// template <class InputIterator> void animateImages( InputIterator first_, InputIterator last_ ) { MagickLib::ExceptionInfo exceptionInfo; MagickLib::GetExceptionInfo( &exceptionInfo ); linkImages( first_, last_ ); MagickLib::AnimateImages( first_->imageInfo(), first_->image() ); MagickLib::GetImageException( first_->image(), &exceptionInfo ); unlinkImages( first_, last_ ); throwException( exceptionInfo ); MagickLib::DestroyExceptionInfo( &exceptionInfo ); } // Append images from list into single image in either horizontal or // vertical direction. template <class InputIterator> void appendImages( Image *appendedImage_, InputIterator first_, InputIterator last_, bool stack_ = false) { MagickLib::ExceptionInfo exceptionInfo; MagickLib::GetExceptionInfo( &exceptionInfo ); linkImages( first_, last_ ); MagickLib::Image* image = MagickLib::AppendImages( first_->image(), (MagickBooleanType) stack_, &exceptionInfo ); unlinkImages( first_, last_ ); appendedImage_->replaceImage( image ); throwException( exceptionInfo ); MagickLib::DestroyExceptionInfo( &exceptionInfo ); } // Average a set of images. // All the input images must be the same size in pixels. template <class InputIterator> void averageImages( Image *averagedImage_, InputIterator first_, InputIterator last_ ) { MagickLib::ExceptionInfo exceptionInfo; MagickLib::GetExceptionInfo( &exceptionInfo ); linkImages( first_, last_ ); MagickLib::Image* image = MagickLib::AverageImages( first_->image(), &exceptionInfo ); unlinkImages( first_, last_ ); averagedImage_->replaceImage( image ); throwException( exceptionInfo ); MagickLib::DestroyExceptionInfo( &exceptionInfo ); } // Merge a sequence of images. // This is useful for GIF animation sequences that have page // offsets and disposal methods. A container to contain // the updated image sequence is passed via the coalescedImages_ // option. template <class InputIterator, class Container > void coalesceImages( Container *coalescedImages_, InputIterator first_, InputIterator last_ ) { MagickLib::ExceptionInfo exceptionInfo; MagickLib::GetExceptionInfo( &exceptionInfo ); // Build image list linkImages( first_, last_ ); MagickLib::Image* images = MagickLib::CoalesceImages( first_->image(), &exceptionInfo); // Unlink image list unlinkImages( first_, last_ ); // Ensure container is empty coalescedImages_->clear(); // Move images to container insertImages( coalescedImages_, images ); // Report any error throwException( exceptionInfo ); MagickLib::DestroyExceptionInfo( &exceptionInfo ); } // Return format coders matching specified conditions. // // The default (if no match terms are supplied) is to return all // available format coders. // // For example, to return all readable formats: // list<CoderInfo> coderList; // coderInfoList( &coderList, CoderInfo::TrueMatch, CoderInfo::AnyMatch, CoderInfo::AnyMatch) // template <class Container > void coderInfoList( Container *container_, CoderInfo::MatchType isReadable_ = CoderInfo::AnyMatch, CoderInfo::MatchType isWritable_ = CoderInfo::AnyMatch, CoderInfo::MatchType isMultiFrame_ = CoderInfo::AnyMatch
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -