File: Montage.cpp

package info (click to toggle)
imagemagick 8%3A6.9.11.60%2Bdfsg-1.6%2Bdeb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 76,816 kB
  • sloc: ansic: 349,503; cpp: 21,804; xml: 11,029; perl: 6,417; sh: 5,877; makefile: 3,042; tcl: 459
file content (119 lines) | stat: -rw-r--r-- 2,778 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// 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"),
    _compose(OverCompositeOp),
    _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::updateMontageInfo(MontageInfo &montageInfo_) const
{
  (void) memset(&montageInfo_,0,sizeof(montageInfo_));

  // background_color
  montageInfo_.background_color=_backgroundColor;
  // border_color
  montageInfo_.border_color=Color();
  // border_width
  montageInfo_.border_width=0;
  // filename
  if (_fileName.length() != 0)
    {
      _fileName.copy(montageInfo_.filename,MaxTextExtent-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;
  // matte_color
  montageInfo_.matte_color=Color();
  // pointsize
  montageInfo_.pointsize=_pointSize;
  // shadow
  montageInfo_.shadow=static_cast<MagickBooleanType>(_shadow ? MagickTrue :
   MagickFalse);
  // signature (validity stamp)
  montageInfo_.signature=MagickSignature;
  // 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)
  : _borderColor("#dfdfdf"),
    _borderWidth(0),
    _frame(),
    _matteColor("#bdbdbd")
{
}

Magick::MontageFramed::~MontageFramed(void)
{
}

void Magick::MontageFramed::updateMontageInfo(MontageInfo &montageInfo_) const
{
  // Do base updates
  Montage::updateMontageInfo(montageInfo_);

  // border_color
  montageInfo_.border_color=_borderColor;
  // border_width
  montageInfo_.border_width=_borderWidth;
  // frame
  if (_frame.isValid())
    Magick::CloneString(&montageInfo_.frame,_frame);
  // matte_color
  montageInfo_.matte_color=_matteColor;
}