Doxygen
Image类 参考

Class representing a bitmap image generated by doxygen. 更多...

#include <image.h>

Public 成员函数

 Image (uint w, uint h)
 
 ~Image ()
 
void setPixel (uint x, uint y, uchar val)
 
uchar getPixel (uint x, uint y) const
 
void writeChar (uint x, uint y, char c, uchar fg)
 
void writeString (uint x, uint y, const QCString &s, uchar fg)
 
void drawHorzLine (uint y, uint xs, uint xe, uchar colIndex, uint mask)
 
void drawHorzArrow (uint y, uint xs, uint xe, uchar colIndex, uint mask)
 
void drawVertLine (uint x, uint ys, uint ye, uchar colIndex, uint mask)
 
void drawVertArrow (uint x, uint ys, uint ye, uchar colIndex, uint mask)
 
void drawRect (uint x, uint y, uint width, uint height, uchar colIndex, uint mask)
 
void fillRect (uint x, uint y, uint width, uint height, uchar colIndex, uint mask)
 
bool save (const QCString &fileName, int mode=0)
 
uint width () const
 
uint height () const
 
uchardata () const
 

静态 Public 成员函数

static uint stringLength (const QCString &s)
 

Private 属性

uint m_width
 
uint m_height
 
ucharm_data
 

友元

uint stringLength (const QCString &s)
 

详细描述

Class representing a bitmap image generated by doxygen.

在文件 image.h26 行定义.

构造及析构函数说明

◆ Image()

Image::Image ( uint  w,
uint  h 
)

在文件 image.cpp209 行定义.

210 {
211  static int hue = Config_getInt(HTML_COLORSTYLE_HUE);
212  static int sat = Config_getInt(HTML_COLORSTYLE_SAT);
213  static int gamma = Config_getInt(HTML_COLORSTYLE_GAMMA);
214 
215  double red1,green1,blue1;
216  double red2,green2,blue2;
217 
218  ColoredImage::hsl2rgb(hue/360.0, // hue
219  sat/255.0, // saturation
220  pow(235/255.0,gamma/100.0), // luma (gamma corrected)
221  &red1,&green1,&blue1
222  );
223 
224  ColoredImage::hsl2rgb(hue/360.0, // hue
225  sat/255.0, // saturation
226  pow(138/255.0,gamma/100.0), // luma (gamma corrected)
227  &red2,&green2,&blue2
228  );
229 
230  palette[2].red = (int)(red1 * 255.0);
231  palette[2].green = (int)(green1 * 255.0);
232  palette[2].blue = (int)(blue1 * 255.0);
233 
234  palette[3].red = (int)(red2 * 255.0);
235  palette[3].green = (int)(green2 * 255.0);
236  palette[3].blue = (int)(blue2 * 255.0);
237 
238  m_data = new uchar[w*h];
239  memset(m_data,0,w*h);
240  m_width = w;
241  m_height = h;
242 }

引用了 Color::blue, Config_getInt, Color::green, ColoredImage::hsl2rgb(), m_data, m_height, m_width, palette , 以及 Color::red.

◆ ~Image()

Image::~Image ( )

在文件 image.cpp244 行定义.

245 {
246  delete[] m_data;
247 }

引用了 m_data.

成员函数说明

◆ data()

uchar* Image::data ( ) const
inline

在文件 image.h62 行定义.

66 :
67  uint m_width;

◆ drawHorzArrow()

void Image::drawHorzArrow ( uint  y,
uint  xs,
uint  xe,
uchar  colIndex,
uint  mask 
)

在文件 image.cpp336 行定义.

337 {
338  drawHorzLine(y,xs,xe,colIndex,mask);
339  uint i;
340  for (i=0;i<6;i++)
341  {
342  uint h=i>>1;
343  drawVertLine(xe-i,y-h,y+h,colIndex,0xffffffff);
344  }
345 }

引用了 drawHorzLine() , 以及 drawVertLine().

被这些函数引用 TreeDiagram::drawConnectors().

◆ drawHorzLine()

void Image::drawHorzLine ( uint  y,
uint  xs,
uint  xe,
uchar  colIndex,
uint  mask 
)

在文件 image.cpp326 行定义.

327 {
328  uint x,i=0,j=0;
329  for (x=xs;x<=xe;x++,j++)
330  {
331  if (j&1) i++;
332  if (mask&(1<<(i&0x1f))) setPixel(x,y,colIndex);
333  }
334 }

引用了 setPixel().

被这些函数引用 TreeDiagram::drawConnectors(), drawHorzArrow(), drawRect(), drawVertArrow() , 以及 writeBitmapBox().

◆ drawRect()

void Image::drawRect ( uint  x,
uint  y,
uint  width,
uint  height,
uchar  colIndex,
uint  mask 
)

在文件 image.cpp367 行定义.

368 {
369  drawHorzLine(y,x,x+w-1,colIndex,mask);
370  drawHorzLine(y+h-1,x,x+w-1,colIndex,mask);
371  drawVertLine(x,y,y+h-1,colIndex,mask);
372  drawVertLine(x+w-1,y,y+h-1,colIndex,mask);
373 }

引用了 drawHorzLine() , 以及 drawVertLine().

被这些函数引用 writeBitmapBox().

◆ drawVertArrow()

void Image::drawVertArrow ( uint  x,
uint  ys,
uint  ye,
uchar  colIndex,
uint  mask 
)

在文件 image.cpp356 行定义.

357 {
358  drawVertLine(x,ys,ye,colIndex,mask);
359  uint i;
360  for (i=0;i<6;i++)
361  {
362  uint h=i>>1;
363  drawHorzLine(ys+i,x-h,x+h,colIndex,0xffffffff);
364  }
365 }

引用了 drawHorzLine() , 以及 drawVertLine().

被这些函数引用 TreeDiagram::drawConnectors().

◆ drawVertLine()

void Image::drawVertLine ( uint  x,
uint  ys,
uint  ye,
uchar  colIndex,
uint  mask 
)

在文件 image.cpp347 行定义.

348 {
349  uint y,i=0;
350  for (y=ys;y<=ye;y++,i++)
351  {
352  if (mask&(1<<(i&0x1f))) setPixel(x,y,colIndex);
353  }
354 }

引用了 setPixel().

被这些函数引用 TreeDiagram::drawConnectors(), drawHorzArrow(), drawRect() , 以及 drawVertArrow().

◆ fillRect()

void Image::fillRect ( uint  x,
uint  y,
uint  width,
uint  height,
uchar  colIndex,
uint  mask 
)

在文件 image.cpp375 行定义.

376 {
377  uint xp,yp,xi,yi;
378  for (yp=y,yi=0;yp<y+height;yp++,yi++)
379  for (xp=x,xi=0;xp<x+width;xp++,xi++)
380  if (mask&(1<<((xi+yi)&0x1f)))
381  setPixel(xp,yp,colIndex);
382 }

引用了 height(), setPixel() , 以及 width().

被这些函数引用 writeBitmapBox().

◆ getPixel()

uchar Image::getPixel ( uint  x,
uint  y 
) const

在文件 image.cpp255 行定义.

256 {
257  if (x<m_width && y<m_height)
258  return m_data[y*m_width+x];
259  else
260  return 0;
261 }

引用了 m_data, m_height , 以及 m_width.

被这些函数引用 writeChar().

◆ height()

uint Image::height ( ) const
inline

在文件 image.h61 行定义.

66 :
67  uint m_width;

被这些函数引用 TreeDiagram::drawBoxes(), TreeDiagram::drawConnectors() , 以及 fillRect().

◆ save()

bool Image::save ( const QCString fileName,
int  mode = 0 
)

在文件 image.cpp384 行定义.

385 {
386  static bool useTransparency = Config_getBool(FORMULA_TRANSPARENT);
387  uchar* buffer;
388  size_t bufferSize;
389  LodePNG_Encoder encoder;
390  LodePNG_Encoder_init(&encoder);
391  uint numCols = mode==0 ? 8 : 16;
392  Color *pPal = mode==0 ? palette :
393  useTransparency ? palette2 :
394  palette3 ;
395  uint i;
396  for (i=0;i<numCols;i++,pPal++)
397  {
398  LodePNG_InfoColor_addPalette(&encoder.infoPng.color,
399  pPal->red,pPal->green,pPal->blue,pPal->alpha);
400  }
401  encoder.infoPng.color.colorType = 3;
402  encoder.infoRaw.color.colorType = 3;
403  LodePNG_encode(&encoder, &buffer, &bufferSize, m_data, m_width, m_height);
404  LodePNG_saveFile(buffer, bufferSize, fileName.data());
405  free(buffer);
406  LodePNG_Encoder_cleanup(&encoder);
407  return TRUE;
408 }

引用了 Color::alpha, Color::blue, Config_getBool, QCString::data(), Color::green, m_data, m_height, m_width, palette, palette2, palette3, Color::red , 以及 TRUE.

◆ setPixel()

void Image::setPixel ( uint  x,
uint  y,
uchar  val 
)

在文件 image.cpp249 行定义.

250 {
251  if (x<m_width && y<m_height)
252  m_data[y*m_width+x] = val;
253 }

引用了 m_data, m_height , 以及 m_width.

被这些函数引用 drawHorzLine(), drawVertLine(), fillRect() , 以及 writeChar().

◆ stringLength()

static uint Image::stringLength ( const QCString s)
static

◆ width()

uint Image::width ( ) const
inline

在文件 image.h60 行定义.

66 :
67  uint m_width;

被这些函数引用 fillRect().

◆ writeChar()

void Image::writeChar ( uint  x,
uint  y,
char  c,
uchar  fg 
)

在文件 image.cpp263 行定义.

264 {
265  if (c>=' ')
266  {
267  uint xf,yf,ci=c-' ';
268  uint rowOffset=0;
269  uint cw = charWidth[ci];
270  uint cp = charPos[ci];
271  for (yf=0;yf<charHeight;yf++)
272  {
273  unsigned short bitPattern=0;
274  uint bitsLeft=cw;
275  uint byteOffset = rowOffset+(cp>>3);
276  uint bitOffset = cp&7;
277  // get the bit pattern for row yf of the character from the font data
278  while (bitsLeft>0)
279  {
280  uint bits=8-bitOffset;
281  if (bits>bitsLeft) bits=bitsLeft;
282  bitPattern<<=bits;
283  bitPattern|=((fontRaw[byteOffset]<<bitOffset)&0xff)>>(8-bits);
284  bitsLeft-=bits;
285  bitOffset=0;
286  byteOffset++;
287  }
288  uint mask=1<<(cw-1);
289  // draw character row yf
290  for (xf=0;xf<cw;xf++)
291  {
292  setPixel(x+xf,y+yf,(bitPattern&mask) ? fg : getPixel(x+xf,y+yf));
293  mask>>=1;
294  }
295  rowOffset+=charSetWidth;
296  }
297  }
298 }

引用了 charHeight, charPos, charSetWidth, charWidth, fontRaw, getPixel() , 以及 setPixel().

被这些函数引用 writeString().

◆ writeString()

void Image::writeString ( uint  x,
uint  y,
const QCString s,
uchar  fg 
)

在文件 image.cpp300 行定义.

301 {
302  if (!s.isEmpty())
303  {
304  const char *p = s.data();
305  char c;
306  while ((c=*p++))
307  {
308  writeChar(x,y,c,fg);
309  x+=charWidth[c-' '];
310  }
311  }
312 }

引用了 charWidth, QCString::data(), QCString::isEmpty() , 以及 writeChar().

被这些函数引用 writeBitmapBox().

友元及相关函数文档

◆ stringLength

uint Image::stringLength ( const QCString s)
friend

在文件 image.cpp314 行定义.

315 {
316  uint w=0;
317  if (!s.isEmpty())
318  {
319  const char *p = s.data();
320  char c;
321  while ((c=*p++)) w+=charWidth[c-' '];
322  }
323  return w;
324 }

被这些函数引用 TreeDiagram::computeExtremes() , 以及 writeBitmapBox().

类成员变量说明

◆ m_data

uchar* Image::m_data
private

在文件 image.h68 行定义.

被这些函数引用 getPixel(), Image(), save(), setPixel() , 以及 ~Image().

◆ m_height

uint Image::m_height
private

在文件 image.h67 行定义.

被这些函数引用 getPixel(), Image(), save() , 以及 setPixel().

◆ m_width

uint Image::m_width
private

在文件 image.h66 行定义.

被这些函数引用 getPixel(), Image(), save() , 以及 setPixel().


该类的文档由以下文件生成:
ColoredImage::hsl2rgb
static void hsl2rgb(double h, double s, double l, double *pRed, double *pGreen, double *pBlue)
Definition: image.cpp:412
Image::m_height
uint m_height
Definition: image.h:67
Color::alpha
Byte alpha
Definition: image.cpp:32
charPos
unsigned short charPos[numChars]
Definition: image.cpp:39
QCString::isEmpty
bool isEmpty() const
Returns TRUE iff the string is empty
Definition: qcstring.h:144
fontRaw
unsigned char fontRaw[charSetWidth *charHeight]
Definition: image.cpp:72
Image::m_width
uint m_width
Definition: image.h:66
Image::drawVertLine
void drawVertLine(uint x, uint ys, uint ye, uchar colIndex, uint mask)
Definition: image.cpp:347
Image::m_data
uchar * m_data
Definition: image.h:68
Color::red
Byte red
Definition: image.cpp:29
Image::getPixel
uchar getPixel(uint x, uint y) const
Definition: image.cpp:255
charWidth
unsigned char charWidth[numChars]
Definition: image.cpp:55
uint
unsigned uint
Definition: qcstring.h:40
Image::height
uint height() const
Definition: image.h:61
palette2
static Color palette2[]
Definition: image.cpp:168
Config_getInt
#define Config_getInt(name)
Definition: config.h:34
charHeight
const int charHeight
Definition: image.cpp:36
uchar
unsigned char uchar
Definition: qcstring.h:38
Image::drawHorzLine
void drawHorzLine(uint y, uint xs, uint xe, uchar colIndex, uint mask)
Definition: image.cpp:326
Image::writeChar
void writeChar(uint x, uint y, char c, uchar fg)
Definition: image.cpp:263
TRUE
#define TRUE
Definition: qcstring.h:36
palette
static Color palette[]
Definition: image.cpp:155
palette3
static Color palette3[]
Definition: image.cpp:188
charSetWidth
const int charSetWidth
Definition: image.cpp:35
Image::width
uint width() const
Definition: image.h:60
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
Color
Helper struct representing a RGBA color
Definition: image.cpp:27
QCString::data
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
Definition: qcstring.h:153
Color::blue
Byte blue
Definition: image.cpp:31
Color::green
Byte green
Definition: image.cpp:30
Image::setPixel
void setPixel(uint x, uint y, uchar val)
Definition: image.cpp:249