HiEasyX  Ver 0.3.0
EasyX 全面扩展库
HiEasyX::Layer类 参考

图层 更多...

#include <HiCanvas.h>

类 HiEasyX::Layer 继承关系图:

Public 成员函数

void Render (IMAGE *pImg=nullptr, bool bShowOutline=false, bool bShowText=true, std::wstring wstrAddedText=L"")
 渲染到画布 更多...
 

Public 属性

bool bVisible = true
 图层是否可见 更多...
 
BYTE alpha = 255
 图层中所有图像块的叠加透明度 更多...
 
bool bOutline = false
 是否显示轮廓 更多...
 
bool bText = false
 若显示轮廓,是否显示文字 更多...
 

详细描述

图层

在文件 HiCanvas.h835 行定义.

成员函数说明

◆ Render()

void HiEasyX::Layer::Render ( IMAGE *  pImg = nullptr,
bool  bShowOutline = false,
bool  bShowText = true,
std::wstring  wstrAddedText = L"" 
)

渲染到画布

参数
[in]pImg目标绘制画布
[in]bShowOutline是否显示轮廓
[in]bShowText是否显示轮廓文本
[in]wstrAddedText附加轮廓文本

在文件 HiCanvas.cpp1921 行定义.

1922  {
1923  bool flagOutline = bOutline || bShowOutline;
1924  bool flagText = bText || bShowText;
1925  Canvas canvas;
1926 
1927  if (bVisible)
1928  {
1929  if (flagOutline)
1930  {
1931  m_property[0].SaveWorkingImageOnly();
1932  SetWorkingImage(pImg);
1933  m_property[1].SaveProperty();
1934 
1935  canvas.BindToImage(pImg);
1936  canvas.SetDefault();
1937  canvas.BeginBatchDrawing();
1938 
1939  canvas.SetBkColor(WHITE);
1940  canvas.SetTextStyle(16, 0, L"Arial");
1941  }
1942 
1943  wstrAddedText = L" " + wstrAddedText;
1944 
1945  size_t i = 0;
1946  for (auto& element : *this)
1947  {
1948  element->Render(pImg, alpha);
1949 
1950  // 绘制轮廓
1951  if (flagOutline)
1952  {
1953  RECT rctImg = {
1954  element->x,
1955  element->y,
1956  element->x + element->GetWidth(),
1957  element->y + element->GetHeight()
1958  };
1959 
1960  canvas.Rectangle(rctImg, true, BLACK);
1961  EXPAND_RECT(rctImg, 1);
1962  canvas.Rectangle(rctImg, true, WHITE);
1963 
1964  // 绘制文本
1965  if (flagText)
1966  {
1967  std::wstring wstrOriginText = L" Block[" + std::to_wstring(i) + L"]";
1968  std::wstring wstrAllText = wstrAddedText + wstrOriginText;
1969 
1970  int w = canvas.TextWidth(wstrAllText.c_str());
1971  int h = canvas.TextHeight(wstrAllText.c_str());
1972 
1973  RECT rctText = { rctImg.right - w - 1, rctImg.bottom + 1, rctImg.right - 1, rctImg.bottom + h + 1 };
1974 
1975  canvas.MoveTo(rctText.left, rctText.top);
1976  canvas.OutText(wstrAddedText.c_str(), true, GREEN);
1977  canvas.OutText(wstrOriginText.c_str(), true, BLACK);
1978 
1979  canvas.Rectangle(rctText, true, BLACK);
1980  EXPAND_RECT(rctText, 1);
1981  canvas.Rectangle(rctText, true, WHITE);
1982  }
1983  }
1984 
1985  i++;
1986  }
1987 
1988  if (flagOutline)
1989  {
1990  canvas.EndBatchDrawing();
1991  m_property[1].ApplyProperty();
1992  m_property[0].ApplyWorkingImageOnly();
1993  }
1994  }
1995  }

类成员变量说明

◆ alpha

BYTE HiEasyX::Layer::alpha = 255

图层中所有图像块的叠加透明度

在文件 HiCanvas.h842 行定义.

◆ bOutline

bool HiEasyX::Layer::bOutline = false

是否显示轮廓

在文件 HiCanvas.h843 行定义.

◆ bText

bool HiEasyX::Layer::bText = false

若显示轮廓,是否显示文字

在文件 HiCanvas.h844 行定义.

◆ bVisible

bool HiEasyX::Layer::bVisible = true

图层是否可见

在文件 HiCanvas.h841 行定义.


该类的文档由以下文件生成:
HiEasyX::DrawingProperty::SaveWorkingImageOnly
void SaveWorkingImageOnly()
只保存当前绘图对象
Definition: HiDrawingProperty.cpp:23
EXPAND_RECT
#define EXPAND_RECT(rct, d)
Definition: HiMacro.h:47
HiEasyX::Layer::alpha
BYTE alpha
图层中所有图像块的叠加透明度
Definition: HiCanvas.h:842
HiEasyX::Layer::bText
bool bText
若显示轮廓,是否显示文字
Definition: HiCanvas.h:844
HiEasyX::DrawingProperty::ApplyWorkingImageOnly
void ApplyWorkingImageOnly()
只恢复绘图对象
Definition: HiDrawingProperty.cpp:48
HiEasyX::Layer::bVisible
bool bVisible
图层是否可见
Definition: HiCanvas.h:841
HiEasyX::Layer::bOutline
bool bOutline
是否显示轮廓
Definition: HiCanvas.h:843
HiEasyX::DrawingProperty::ApplyProperty
void ApplyProperty()
应用保存的所有绘图属性
Definition: HiDrawingProperty.cpp:29
HiEasyX::DrawingProperty::SaveProperty
void SaveProperty()
保存当前所有的绘图属性
Definition: HiDrawingProperty.cpp:5