Doxygen
Loading...
Searching...
No Matches
image.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2022 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef IMAGE_H
17#define IMAGE_H
18
19#include <cstdint>
20#include <memory>
21
22#include "construct.h"
23#include "types.h"
24
25class DString;
26
27/** Class representing a bitmap image generated by doxygen. */
28class Image
29{
30 public:
31 Image(uint32_t w,uint32_t h);
34
35 void setPixel(uint32_t x,uint32_t y,uint8_t val);
36 uint8_t getPixel(uint32_t x,uint32_t y) const;
37 void writeChar(uint32_t x,uint32_t y,char c,uint8_t fg);
38 void writeString(uint32_t x,uint32_t y,const DString &s,uint8_t fg);
39 void drawHorzLine(uint32_t y,uint32_t xs,uint32_t xe,uint8_t colIndex,uint32_t mask);
40 void drawHorzArrow(uint32_t y,uint32_t xs,uint32_t xe,uint8_t colIndex,uint32_t mask);
41 void drawVertLine(uint32_t x,uint32_t ys,uint32_t ye,uint8_t colIndex,uint32_t mask);
42 void drawVertArrow(uint32_t x,uint32_t ys,uint32_t ye,uint8_t colIndex,uint32_t mask);
43 void drawRect(uint32_t x,uint32_t y,uint32_t width,uint32_t height,uint8_t colIndex,uint32_t mask);
44 void fillRect(uint32_t x,uint32_t y,uint32_t width,uint32_t height,uint8_t colIndex,uint32_t mask);
45 bool save(const DString &fileName);
46 friend uint32_t stringLength(const DString &s);
47 uint32_t width() const;
48 uint32_t height() const;
49 static uint32_t stringLength(const DString &s);
50
51 private:
52 struct Private;
53 std::unique_ptr<Private> p;
54};
55
56/** Class representing a bitmap image colored based on hue/sat/gamma settings. */
58{
59 public:
60 ColoredImage(uint32_t width,uint32_t height,
61 const uint8_t *greyLevels,const uint8_t *alphaLevels,
62 int saturation,int hue,int gamma);
65
66 bool save(const DString &fileName);
67 static void hsl2rgb(double h,double s,double l,
68 double *pRed,double *pGreen,double *pBlue);
69 private:
70 struct Private;
71 std::unique_ptr<Private> p;
72};
73
74#endif
bool save(const DString &fileName)
Definition image.cpp:460
static void hsl2rgb(double h, double s, double l, double *pRed, double *pGreen, double *pBlue)
Definition image.cpp:368
ColoredImage(uint32_t width, uint32_t height, const uint8_t *greyLevels, const uint8_t *alphaLevels, int saturation, int hue, int gamma)
Definition image.cpp:432
std::unique_ptr< Private > p
Definition image.h:71
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
void drawVertLine(uint32_t x, uint32_t ys, uint32_t ye, uint8_t colIndex, uint32_t mask)
Definition image.cpp:309
void setPixel(uint32_t x, uint32_t y, uint8_t val)
Definition image.cpp:213
std::unique_ptr< Private > p
Definition image.h:53
void drawHorzLine(uint32_t y, uint32_t xs, uint32_t xe, uint8_t colIndex, uint32_t mask)
Definition image.cpp:289
static uint32_t stringLength(const DString &s)
void drawVertArrow(uint32_t x, uint32_t ys, uint32_t ye, uint8_t colIndex, uint32_t mask)
Definition image.cpp:318
uint32_t width() const
Definition image.cpp:208
void fillRect(uint32_t x, uint32_t y, uint32_t width, uint32_t height, uint8_t colIndex, uint32_t mask)
Definition image.cpp:336
uint32_t height() const
Definition image.cpp:209
void drawHorzArrow(uint32_t y, uint32_t xs, uint32_t xe, uint8_t colIndex, uint32_t mask)
Definition image.cpp:299
void drawRect(uint32_t x, uint32_t y, uint32_t width, uint32_t height, uint8_t colIndex, uint32_t mask)
Definition image.cpp:328
void writeString(uint32_t x, uint32_t y, const DString &s, uint8_t fg)
Definition image.cpp:263
friend uint32_t stringLength(const DString &s)
Definition image.cpp:277
void writeChar(uint32_t x, uint32_t y, char c, uint8_t fg)
Definition image.cpp:223
uint8_t getPixel(uint32_t x, uint32_t y) const
Definition image.cpp:218
bool save(const DString &fileName)
Definition image.cpp:346
Image(uint32_t w, uint32_t h)
Definition image.cpp:174
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
This file contains a number of basic enums and types.