Example #1
0
 internal DmtxEncode()
 {
     this._scheme = DmtxScheme.DmtxSchemeAscii;
     this._sizeIdxRequest = DmtxSymbolSize.DmtxSymbolSquareAuto;
     this._marginSize = 10;
     this._moduleSize = 5;
     this._pixelPacking = DmtxPackOrder.DmtxPack24bppRGB;
     this._imageFlip = DmtxFlip.DmtxFlipNone;
     this._rowPadBytes = 0;
 }
Example #2
0
 private DmtxEncode(DmtxEncode src)
 {
     this._scheme = src._scheme;
     this._sizeIdxRequest = src._sizeIdxRequest;
     this._marginSize = src._marginSize;
     this._moduleSize = src._moduleSize;
     this._pixelPacking = src._pixelPacking;
     this._imageFlip = src._imageFlip;
     this._rowPadBytes = src._rowPadBytes;
     this._image = src._image;
     this._message = src._message;
     this._method = src._method;
     this._region = src._region;
 }
Example #3
0
        internal DmtxImage(byte[] pxl, int width, int height, DmtxPackOrder pack)
        {
            _bitsPerChannel = new int[4];
            _channelStart   = new int[4];
            if (pxl == null || width < 1 || height < 1)
            {
                throw new ArgumentException("Cannot create image of size null");
            }

            this._pxl           = pxl;
            this._width         = width;
            this._height        = height;
            this._pixelPacking  = pack;
            this._bitsPerPixel  = DmtxCommon.GetBitsPerPixel(pack);
            this._bytesPerPixel = this._bitsPerPixel / 8;
            this._rowPadBytes   = 0;
            this._rowSizeBytes  = this._width * this._bytesPerPixel + this._rowPadBytes;
            this._imageFlip     = DmtxFlip.DmtxFlipNone;

            /* Leave channelStart[] and bitsPerChannel[] with zeros from calloc */
            this._channelCount = 0;

            switch (pack)
            {
            case DmtxPackOrder.DmtxPackCustom:
                break;

            case DmtxPackOrder.DmtxPack1bppK:
                throw new ArgumentException("Cannot create image: not supported pack order!");

            case DmtxPackOrder.DmtxPack8bppK:
                SetChannel(0, 8);
                break;

            case DmtxPackOrder.DmtxPack16bppRGB:
            case DmtxPackOrder.DmtxPack16bppBGR:
            case DmtxPackOrder.DmtxPack16bppYCbCr:
                SetChannel(0, 5);
                SetChannel(5, 5);
                SetChannel(10, 5);
                break;

            case DmtxPackOrder.DmtxPack24bppRGB:
            case DmtxPackOrder.DmtxPack24bppBGR:
            case DmtxPackOrder.DmtxPack24bppYCbCr:
            case DmtxPackOrder.DmtxPack32bppRGBX:
            case DmtxPackOrder.DmtxPack32bppBGRX:
                SetChannel(0, 8);
                SetChannel(8, 8);
                SetChannel(16, 8);
                break;

            case DmtxPackOrder.DmtxPack16bppRGBX:
            case DmtxPackOrder.DmtxPack16bppBGRX:
                SetChannel(0, 5);
                SetChannel(5, 5);
                SetChannel(10, 5);
                break;

            case DmtxPackOrder.DmtxPack16bppXRGB:
            case DmtxPackOrder.DmtxPack16bppXBGR:
                SetChannel(1, 5);
                SetChannel(6, 5);
                SetChannel(11, 5);
                break;

            case DmtxPackOrder.DmtxPack32bppXRGB:
            case DmtxPackOrder.DmtxPack32bppXBGR:
                SetChannel(8, 8);
                SetChannel(16, 8);
                SetChannel(24, 8);
                break;

            case DmtxPackOrder.DmtxPack32bppCMYK:
                SetChannel(0, 8);
                SetChannel(8, 8);
                SetChannel(16, 8);
                SetChannel(24, 8);
                break;

            default:
                throw new ArgumentException("Cannot create image: Invalid Pack Order");
            }
        }
Example #4
0
        internal DmtxImage(byte[] pxl, int width, int height, DmtxPackOrder pack)
        {
            _bitsPerChannel = new int[4];
            _channelStart = new int[4];
            if (pxl == null || width < 1 || height < 1)
            {
                throw new ArgumentException("Cannot create image of size null");
            }

            this._pxl = pxl;
            this._width = width;
            this._height = height;
            this._pixelPacking = pack;
            this._bitsPerPixel = DmtxCommon.GetBitsPerPixel(pack);
            this._bytesPerPixel = this._bitsPerPixel / 8;
            this._rowPadBytes = 0;
            this._rowSizeBytes = this._width * this._bytesPerPixel + this._rowPadBytes;
            this._imageFlip = DmtxFlip.DmtxFlipNone;

            /* Leave channelStart[] and bitsPerChannel[] with zeros from calloc */
            this._channelCount = 0;

            switch (pack)
            {
                case DmtxPackOrder.DmtxPackCustom:
                    break;
                case DmtxPackOrder.DmtxPack1bppK:
                    throw new ArgumentException("Cannot create image: not supported pack order!");
                case DmtxPackOrder.DmtxPack8bppK:
                    SetChannel(0, 8);
                    break;
                case DmtxPackOrder.DmtxPack16bppRGB:
                case DmtxPackOrder.DmtxPack16bppBGR:
                case DmtxPackOrder.DmtxPack16bppYCbCr:
                    SetChannel(0, 5);
                    SetChannel(5, 5);
                    SetChannel(10, 5);
                    break;
                case DmtxPackOrder.DmtxPack24bppRGB:
                case DmtxPackOrder.DmtxPack24bppBGR:
                case DmtxPackOrder.DmtxPack24bppYCbCr:
                case DmtxPackOrder.DmtxPack32bppRGBX:
                case DmtxPackOrder.DmtxPack32bppBGRX:
                    SetChannel(0, 8);
                    SetChannel(8, 8);
                    SetChannel(16, 8);
                    break;
                case DmtxPackOrder.DmtxPack16bppRGBX:
                case DmtxPackOrder.DmtxPack16bppBGRX:
                    SetChannel(0, 5);
                    SetChannel(5, 5);
                    SetChannel(10, 5);
                    break;
                case DmtxPackOrder.DmtxPack16bppXRGB:
                case DmtxPackOrder.DmtxPack16bppXBGR:
                    SetChannel(1, 5);
                    SetChannel(6, 5);
                    SetChannel(11, 5);
                    break;
                case DmtxPackOrder.DmtxPack32bppXRGB:
                case DmtxPackOrder.DmtxPack32bppXBGR:
                    SetChannel(8, 8);
                    SetChannel(16, 8);
                    SetChannel(24, 8);
                    break;
                case DmtxPackOrder.DmtxPack32bppCMYK:
                    SetChannel(0, 8);
                    SetChannel(8, 8);
                    SetChannel(16, 8);
                    SetChannel(24, 8);
                    break;
                default:
                    throw new ArgumentException("Cannot create image: Invalid Pack Order");
            }
        }