blob: 33bf0ce07f995a3360a0c8d96fe82601e7e210d1 [file] [log] [blame]
// This may look like C code, but it is really -*- C++ -*-
//
// Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003
//
// Implementation of Montage
//
#define MAGICKCORE_IMPLEMENTATION 1
#define MAGICK_PLUSPLUS_IMPLEMENTATION 1
#include "Magick++/Include.h"
#include <string>
#include <string.h>
#include "Magick++/Montage.h"
#include "Magick++/Functions.h"
Magick::Montage::Montage(void)
: _backgroundColor("#ffffff"),
_fileName(),
_fill("#000000ff"),
_font(),
_geometry("120x120+4+3>"),
_gravity(CenterGravity),
_label(),
_pointSize(12),
_shadow(false),
_stroke(),
_texture(),
_tile("6x4"),
_title(),
_transparentColor()
{
}
Magick::Montage::~Montage(void)
{
}
void Magick::Montage::backgroundColor(const Magick::Color &backgroundColor_)
{
_backgroundColor=backgroundColor_;
}
Magick::Color Magick::Montage::backgroundColor(void) const
{
return(_backgroundColor);
}
void Magick::Montage::fileName(const std::string &fileName_)
{
_fileName=fileName_;
}
std::string Magick::Montage::fileName(void) const
{
return(_fileName);
}
void Magick::Montage::fillColor(const Color &fill_)
{
_fill=fill_;
}
Magick::Color Magick::Montage::fillColor(void) const
{
return(_fill);
}
void Magick::Montage::font(const std::string &font_)
{
_font=font_;
}
std::string Magick::Montage::font(void) const
{
return(_font);
}
void Magick::Montage::geometry(const Magick::Geometry &geometry_)
{
_geometry=geometry_;
}
Magick::Geometry Magick::Montage::geometry(void) const
{
return(_geometry);
}
void Magick::Montage::gravity(Magick::GravityType gravity_)
{
_gravity=gravity_;
}
Magick::GravityType Magick::Montage::gravity(void) const
{
return(_gravity);
}
void Magick::Montage::label(const std::string &label_)
{
_label=label_;
}
std::string Magick::Montage::label(void) const
{
return(_label);
}
void Magick::Montage::pointSize(size_t pointSize_)
{
_pointSize=pointSize_;
}
size_t Magick::Montage::pointSize(void) const
{
return(_pointSize);
}
void Magick::Montage::shadow(bool shadow_)
{
_shadow=shadow_;
}
bool Magick::Montage::shadow(void) const
{
return(_shadow);
}
void Magick::Montage::strokeColor(const Color &stroke_)
{
_stroke=stroke_;
}
Magick::Color Magick::Montage::strokeColor(void) const
{
return(_stroke);
}
void Magick::Montage::texture(const std::string &texture_)
{
_texture=texture_;
}
std::string Magick::Montage::texture(void) const
{
return(_texture);
}
void Magick::Montage::tile(const Geometry &tile_)
{
_tile=tile_;
}
Magick::Geometry Magick::Montage::tile(void) const
{
return(_tile);
}
void Magick::Montage::title(const std::string &title_)
{
_title=title_;
}
std::string Magick::Montage::title(void) const
{
return(_title);
}
void Magick::Montage::transparentColor(const Magick::Color &transparentColor_)
{
_transparentColor=transparentColor_;
}
Magick::Color Magick::Montage::transparentColor(void) const
{
return(_transparentColor);
}
void Magick::Montage::updateMontageInfo(MontageInfo &montageInfo_ ) const
{
(void) memset(&montageInfo_,0,sizeof(montageInfo_));
// matte_color
montageInfo_.matte_color=Color();
// background_color
montageInfo_.background_color=_backgroundColor;
// border_color
montageInfo_.border_color=Color();
// border_width
montageInfo_.border_width=0;
// filename
if (_font.length() != 0)
{
_fileName.copy(montageInfo_.filename,MagickPathExtent-1);
montageInfo_.filename[ _fileName.length() ] = 0; // null terminate
}
// fill
montageInfo_.fill=_fill;
// font
if (_font.length() != 0)
Magick::CloneString(&montageInfo_.font,_font);
// geometry
if (_geometry.isValid())
Magick::CloneString(&montageInfo_.geometry,_geometry);
// gravity
montageInfo_.gravity=_gravity;
// pointsize
montageInfo_.pointsize=_pointSize;
// shadow
montageInfo_.shadow=static_cast<MagickBooleanType>
(_shadow ? MagickTrue : MagickFalse);
// signature (validity stamp)
montageInfo_.signature=MagickCoreSignature;
// stroke
montageInfo_.stroke=_stroke;
// texture
if (_texture.length() != 0)
Magick::CloneString(&montageInfo_.texture,_texture);
// tile
if (_tile.isValid())
Magick::CloneString(&montageInfo_.tile,_tile);
// title
if (_title.length() != 0)
Magick::CloneString(&montageInfo_.title,_title);
}
//
// Implementation of MontageFramed
//
Magick::MontageFramed::MontageFramed(void)
: _matteColor("#bdbdbd"),
_borderColor("#dfdfdf"),
_borderWidth(0),
_frame()
{
}
Magick::MontageFramed::~MontageFramed(void)
{
}
void Magick::MontageFramed::matteColor(const Magick::Color &matteColor_)
{
_matteColor=matteColor_;
}
Magick::Color Magick::MontageFramed::matteColor(void) const
{
return(_matteColor);
}
void Magick::MontageFramed::borderColor(const Magick::Color &borderColor_)
{
_borderColor=borderColor_;
}
Magick::Color Magick::MontageFramed::borderColor(void) const
{
return(_borderColor);
}
void Magick::MontageFramed::borderWidth(size_t borderWidth_)
{
_borderWidth=borderWidth_;
}
size_t Magick::MontageFramed::borderWidth(void) const
{
return(_borderWidth);
}
void Magick::MontageFramed::frameGeometry(const Magick::Geometry &frame_)
{
_frame=frame_;
}
Magick::Geometry Magick::MontageFramed::frameGeometry(void) const
{
return(_frame);
}
void Magick::MontageFramed::updateMontageInfo(MontageInfo &montageInfo_) const
{
// Do base updates
Montage::updateMontageInfo(montageInfo_);
// matte_color
montageInfo_.matte_color = _matteColor;
// border_color
montageInfo_.border_color=_borderColor;
// border_width
montageInfo_.border_width=_borderWidth;
// frame
if (_frame.isValid())
Magick::CloneString(&montageInfo_.frame,_frame);
}