public override void Render(CodeData xData) { SvgRenderOptions xOpt=m_xOptions as SvgRenderOptions; // if( xOpt==null ) xOpt=new SvgRenderOptions(); // SvgCode xSvg=new SvgCode(xData,xOpt.m_bHorizontalOptimization); // m_sResult=xSvg.GetGraphic( xOpt.m_iPixelPerModuleX , xOpt.m_iPixelPerModuleY ); }
static public CodeDecoder Decode(CodeData xBitmap) { BitMatrix xMatrix=new BitMatrix(xBitmap.ModuleMatrix[0].Count , xBitmap.ModuleMatrix.Count ); // for(int y=0; y<xBitmap.ModuleMatrix.Count; y++) for(int x=0; x<xBitmap.ModuleMatrix[0].Count; x++) xMatrix[x,y]=xBitmap.ModuleMatrix[y][x]; // BinaryBitmap xBin=new BinaryBitmap( xMatrix ); // return Decode( xBin ); }
public override void Render(CodeData xData) { XamlRenderOptions xOpt = m_xOptions as XamlRenderOptions; // if (xOpt == null) { xOpt = new XamlRenderOptions(); } // m_xData = xData; // this.m_xDrawingGroup = GetGraphic(xOpt.m_iPixelPerModuleX, xOpt.m_iPixelPerModuleY); }
public override void Render(CodeData xData) { XamlRenderOptions xOpt = m_xOptions as XamlRenderOptions; // if (xOpt == null) { xOpt = new XamlRenderOptions(); } // m_xData = xData; // this.m_xBitmap = GetGraphic(); }
public override CodeData CreateCodeData(Payload xPayload, CodeOptions xOptions) { Pdf417CodeOptions xOpt = xOptions as Pdf417CodeOptions; // if (xOpt == null) { xOpt = new Pdf417CodeOptions(); } // int width = 1024; int height = 1024; PDF417Writer _bcWriter = new PDF417Writer(); Dictionary <EncodeHintType, object> Hints = new Dictionary <EncodeHintType, object>(); Hints[EncodeHintType.WIDTH] = width; Hints[EncodeHintType.HEIGHT] = height; Hints[EncodeHintType.MARGIN] = 0; Hints[EncodeHintType.PDF417_COMPACTION] = (ZXing.PDF417.Internal.Compaction)(int) xOpt.m_eCompactionMode; Hints[EncodeHintType.ERROR_CORRECTION] = (ZXing.PDF417.Internal.PDF417ErrorCorrectionLevel)(xOpt.ErrorCorrm_iectionLevel); Hints[EncodeHintType.PDF417_DIMENSIONS] = new ZXing.PDF417.Internal.Dimensions(xOpt.m_iDataColumns, xOpt.m_iDataColumns, xOpt.m_iDataRows, 100); if (xOpt.m_bMacroPDF) { Hints[EncodeHintType.PDF417_MACROENABLE] = true; Hints[EncodeHintType.PDF417_MACROFileID] = xOpt.m_sMacroPDFFileID; Hints[EncodeHintType.PDF417_MACROSegmentIndex] = xOpt.m_iMacroPDFSegmentIdx; Hints[EncodeHintType.PDF417_MACROSegmentCount] = xOpt.m_iMacroPDFSegmentCount; } Hints[EncodeHintType.PDF417_Y2XRatio] = xOpt.m_fY2XRatio; BitMatrix xData = _bcWriter.encode(xPayload.ToString(), width, height, Hints); // CodeData xResData = new CodeData(xData.Width, xData.Height); // for (int y = 0; y < xData.Height; y++) { for (int x = 0; x < xData.Width; x++) { xResData.ModuleMatrix[y][x] = xData[x, y]; } } // return(xResData); }
public override void Render(CodeData xData) { PngRenderOptions xOpt = m_xOptions as PngRenderOptions; // if (xOpt == null) { xOpt = new PngRenderOptions(); } // m_xCodeData = xData; // m_abData = GetGraphic(Math.Max(1, xOpt.m_iWidth / xData.ModuleMatrix.Count)); // }
public override CodeData CreateCodeData(Payload xPayload, CodeOptions xOptions) { QREncoder xQREncoder = new QREncoder(); // CodeData xData = xQREncoder.CreateCodeData(xPayload, xOptions); // make cross int iMidX = xData.ModuleMatrix.Count / 2 - 4; int iMidY = xData.ModuleMatrix[0].Count / 2 - 4; for (int y = 0; y < 9; y++) { for (int x = 0; x < 9; x++) { xData.ModuleMatrix[iMidY + y][iMidX + x] = abCrossData[x, y] == 1; } } // return(xData); }
public override CodeData CreateCodeData(Payload xPayload, CodeOptions xOptions) { AztecCodeOptions xOpt = xOptions as AztecCodeOptions; // if (xOpt == null) { xOpt = new AztecCodeOptions(); } // int width = 1024; int height = 1024; AztecWriter _bcWriter = new AztecWriter(); Dictionary <EncodeHintType, object> Hints = new Dictionary <EncodeHintType, object>(); Hints[EncodeHintType.WIDTH] = width; Hints[EncodeHintType.HEIGHT] = height; //Hints[EncodeHintType.PDF417_COMPACTION] = (ZXing.PDF417.Internal.Compaction)(int)xOpt.m_eCompactionMode; //Hints[EncodeHintType.ERROR_CORRECTION] = (ZXing.PDF417.Internal.PDF417ErrorCorrectionLevel)(xOpt.ErrorCorrm_iectionLevel); //Hints[EncodeHintType.PDF417_DIMENSIONS] = new ZXing.PDF417.Internal.Dimensions(xOpt.m_iDataColumns,xOpt.m_iDataColumns,xOpt.m_iDataRows,100); BitMatrix xData = _bcWriter.encode(xPayload.ToString(), width, height, Hints); // CodeData xResData = new CodeData(xData.Width, xData.Height); // for (int y = 0; y < xData.Height; y++) { for (int x = 0; x < xData.Width; x++) { xResData.ModuleMatrix[y][x] = xData[x, y]; } } // return(xResData); }
public void Dispose() { m_xCodeData = null; }
public CodeData CreateCode(String contents, int iHeight) { int length = contents.Length; // Check length if (length < 1 || length > 80) { throw new ArgumentException( "Contents length should be between 1 and 80 characters, but got " + length); } // Check content for (int i = 0; i < length; i++) { char c = contents[i]; if (c < ' ' || c > '~') { switch (c) { case ESCAPE_FNC_1: case ESCAPE_FNC_2: case ESCAPE_FNC_3: case ESCAPE_FNC_4: break; default: throw new ArgumentException("Bad character in input: " + c); } } } var patterns = new List <int[]>(); // temporary storage for patterns int checkSum = 0; int checkWeight = 1; int codeSet = 0; // selected code (CODE_CODE_B or CODE_CODE_C) int position = 0; // position in contents int newCodeSet = CODE_CODE_B; while (position < length) { // If we're not manually controlling subsets if (!manualCodesets) { //Select code to use int requiredDigitCount = codeSet == CODE_CODE_C ? 2 : 4; if (isDigits(contents, position, requiredDigitCount)) { newCodeSet = forceCodesetB ? CODE_CODE_B : CODE_CODE_C; } else { newCodeSet = CODE_CODE_B; } } //Get the pattern index int patternIndex; if (newCodeSet == codeSet) { // Encode the current character // First handle escapes switch (contents[position]) { case ESCAPE_FNC_1: patternIndex = CODE_FNC_1; break; case ESCAPE_FNC_2: patternIndex = CODE_FNC_2; break; case ESCAPE_FNC_3: patternIndex = CODE_FNC_3; break; case ESCAPE_FNC_4: patternIndex = CODE_FNC_4_B; // FIXME if this ever outputs Code A break; default: if (manualCodesets && contents[position] == '~') { switch (contents[position + 1]) { case 'B': newCodeSet = CODE_CODE_B; codeSet = newCodeSet; patternIndex = newCodeSet; break; case 'C': newCodeSet = CODE_CODE_C; codeSet = newCodeSet; patternIndex = newCodeSet; break; default: patternIndex = contents[position + 1] - ' '; break; } position++; } else { // Then handle normal characters otherwise if (codeSet == CODE_CODE_B) { patternIndex = contents[position] - ' '; } else { // CODE_CODE_C patternIndex = Int32.Parse(contents.Substring(position, 2)); position++; // Also incremented below } } break; } position++; } else { // Should we change the current code? // Do we have a code set? if (codeSet == 0) { // No, we don't have a code set if (newCodeSet == CODE_CODE_B) { patternIndex = CODE_START_B; } else { // CODE_CODE_C patternIndex = CODE_START_C; } } else { // Yes, we have a code set patternIndex = newCodeSet; } codeSet = newCodeSet; } // Get the pattern patterns.Add(CODE_PATTERNS[patternIndex]); // Compute checksum checkSum += patternIndex * checkWeight; if (position != 0) { checkWeight++; } } // Compute and append checksum checkSum %= 103; patterns.Add(CODE_PATTERNS[checkSum]); // Append stop code patterns.Add(CODE_PATTERNS[CODE_STOP]); // Compute code width int codeWidth = 0; foreach (int[] pattern in patterns) { foreach (int width in pattern) { codeWidth += width; } } // Compute result var result = new bool[codeWidth]; int pos = 0; foreach (int[] pattern in patterns) { pos += appendPattern(result, pos, pattern, true); } CodeData xData = new CodeData(result.Length, iHeight); // for (int y = 0; y < iHeight; y++) { for (int x = 0; x < result.Length; x++) { xData.ModuleMatrix[y][x] = result[x]; } } return(xData); }
public SvgCode(CodeData xCodeData, bool bHorizontalOptimization) { m_xCodeData=xCodeData; m_bHorizontalOptimization=bHorizontalOptimization; }