diff options
Diffstat (limited to 'src/imageplugins/border/border.h')
-rw-r--r-- | src/imageplugins/border/border.h | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/src/imageplugins/border/border.h b/src/imageplugins/border/border.h new file mode 100644 index 00000000..b213e27a --- /dev/null +++ b/src/imageplugins/border/border.h @@ -0,0 +1,151 @@ +/* ============================================================ + * + * This file is a part of digiKam project + * http://www.digikam.org + * + * Date : 2005-05-25 + * Description : border threaded image filter. + * + * Copyright 2005-2007 by Gilles Caulier <caulier dot gilles at gmail dot com> + * Copyright 2006-2007 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de> + * + * This program is free software; you can redistribute it + * and/or modify it under the terms of the GNU General + * Public License as published by the Free Software Foundation; + * either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * ============================================================ */ + +#ifndef BORDER_H +#define BORDER_H + +// TQt includes. + +#include <tqstring.h> +#include <tqcolor.h> +#include <tqimage.h> + +// Digikam includes. + +#include "dimgthreadedfilter.h" + +namespace DigikamBorderImagesPlugin +{ + +class Border : public Digikam::DImgThreadedFilter +{ + +public: + + enum BorderTypes + { + SolidBorder=0, + NiepceBorder, + BeveledBorder, + PineBorder, + WoodBorder, + PaperBorder, + ParqueBorder, + IceBorder, + LeafBorder, + MarbleBorder, + RainBorder, + CratersBorder, + DriedBorder, + PinkBorder, + StoneBorder, + ChalkBorder, + GraniteBorder, + RockBorder, + WallBorder + }; + +public: + + /** Constructor using settings to preserve aspect ratio of image. */ + Border(Digikam::DImg *orgImage, TQObject *parent=0, int orgWidth=0, int orgHeight=0, + TQString borderPath=TQString(), int borderType=SolidBorder, float borderPercent=0.1, + Digikam::DColor solidColor = Digikam::DColor(), + Digikam::DColor niepceBorderColor = Digikam::DColor(), + Digikam::DColor niepceLineColor = Digikam::DColor(), + Digikam::DColor bevelUpperLeftColor = Digikam::DColor(), + Digikam::DColor bevelLowerRightColor = Digikam::DColor(), + Digikam::DColor decorativeFirstColor = Digikam::DColor(), + Digikam::DColor decorativeSecondColor = Digikam::DColor()); + + /** Constructor using settings to not-preserve aspect ratio of image. */ + Border(Digikam::DImg *orgImage, TQObject *parent=0, int orgWidth=0, int orgHeight=0, + TQString borderPath=TQString(), int borderType=SolidBorder, + int borderWidth1=100, int borderWidth2=20, int borderWidth3=20, int borderWidth4=10, + Digikam::DColor solidColor = Digikam::DColor(), + Digikam::DColor niepceBorderColor = Digikam::DColor(), + Digikam::DColor niepceLineColor = Digikam::DColor(), + Digikam::DColor bevelUpperLeftColor = Digikam::DColor(), + Digikam::DColor bevelLowerRightColor = Digikam::DColor(), + Digikam::DColor decorativeFirstColor = Digikam::DColor(), + Digikam::DColor decorativeSecondColor = Digikam::DColor()); + + ~Border(){}; + +private: + + virtual void filterImage(void); + + + /** Methods to preserve aspect ratio of image. */ + void solid(Digikam::DImg &src, Digikam::DImg &dest, const Digikam::DColor &fg, int borderWidth); + void niepce(Digikam::DImg &src, Digikam::DImg &dest, const Digikam::DColor &fg, int borderWidth, + const Digikam::DColor &bg, int lineWidth); + void bevel(Digikam::DImg &src, Digikam::DImg &dest, const Digikam::DColor &topColor, + const Digikam::DColor &btmColor, int borderWidth); + void pattern(Digikam::DImg &src, Digikam::DImg &dest, int borderWidth, const Digikam::DColor &firstColor, + const Digikam::DColor &secondColor, int firstWidth, int secondWidth); + + /** Methods to not-preserve aspect ratio of image. */ + void solid2(Digikam::DImg &src, Digikam::DImg &dest, const Digikam::DColor &fg, int borderWidth); + void niepce2(Digikam::DImg &src, Digikam::DImg &dest, const Digikam::DColor &fg, int borderWidth, + const Digikam::DColor &bg, int lineWidth); + void bevel2(Digikam::DImg &src, Digikam::DImg &dest, const Digikam::DColor &topColor, + const Digikam::DColor &btmColor, int borderWidth); + void pattern2(Digikam::DImg &src, Digikam::DImg &dest, int borderWidth, const Digikam::DColor &firstColor, + const Digikam::DColor &secondColor, int firstWidth, int secondWidth); + +private: + + bool m_preserveAspectRatio; + + int m_orgWidth; + int m_orgHeight; + + int m_borderType; + + int m_borderWidth1; + int m_borderWidth2; + int m_borderWidth3; + int m_borderWidth4; + + int m_borderMainWidth; + int m_border2ndWidth; + + float m_orgRatio; + + TQString m_borderPath; + + Digikam::DColor m_solidColor; + Digikam::DColor m_niepceBorderColor; + Digikam::DColor m_niepceLineColor; + Digikam::DColor m_bevelUpperLeftColor; + Digikam::DColor m_bevelLowerRightColor; + Digikam::DColor m_decorativeFirstColor; + Digikam::DColor m_decorativeSecondColor; +}; + +} // NameSpace DigikamBorderImagesPlugin + +#endif /* BORDER_H */ |