using System;
namespace Dongke.WinForm.Controls.InvoiceLayout.DrawBarcode.QRCode
{
///
/// 二维码格式数据
///
[Serializable]
public sealed class QRCodeData
{
///
/// 获取坐标元素
///
public bool this[int x, int y]
{
get => Data[y, x];
set => Data[y, x] = value;
}
///
/// 矩阵数组
///
public bool[,] Data
{
get;
}
///
/// 获取尺寸(像素)
///
public int Size { get; } = 0;
///
/// 设定宽度
///
public int Width
{
get;
internal set;
}
///
/// 设定高度
///
public int Height
{
get;
internal set;
}
///
/// 二维码MaskPattern
///
public int MaskPattern
{
get;
internal set;
}
///
/// 二维码Mode
///
public string ModeName
{
get;
internal set;
}
///
/// 二维码版本
///
public int Version
{
get;
internal set;
}
///
/// 条码内容
///
public string Text
{
get;
internal set;
}
///
/// 编码参数
///
public QRCodeEncodingOptions Options
{
get;
internal set;
}
///
/// 二维码数据(矩阵数组)
///
/// 尺寸
internal QRCodeData(int size)
{
this.Data = new bool[size, size];
this.Size = size;
}
///
/// 设置全部值
///
/// The value.
public void SetAllValue(bool value)
{
for (int y = 0; y < this.Size; y++)
{
for (int x = 0; x < this.Size; x++)
{
this.Data[y, x] = value;
}
}
}
}
}