Project1.dpr
//******************************************************************* // ByteScout Barcode Reader SDK // // Copyright ? 2016 ByteScout - https://bytescout.com // ALL RIGHTS RESERVED // //******************************************************************* program Project1; {$APPTYPE CONSOLE} { Sample that shows reading of barcodes from images in /Images/ subfolder } uses SysUtils, ComObj, ActiveX; var reader: Variant; SR: TSearchRec; arrayOutput: Variant; varItem: Variant; i: integer; pathWithImages, imageType: string; begin CoInitialize(nil); // Disable floating point exception to conform to .NET floating point operations behavior. System.Set8087CW($133f); // Create and initialize Bytescout.BarCodeReader.Reader object reader := CreateOleObject('Bytescout.BarCodeReader.Reader'); reader.RegistrationName := 'demo'; reader.RegistrationKey := 'demo'; // Enable Code 39 decoding, you may also enable other types (dozens of types supported) // see .BarCodeTypesToFind for more values. reader.BarcodeTypesToFind.Code39 := true; // For example to enable Code128 uncomment line below // reader.BarcodeTypesToFind.Code128 := true; // For example to enable QR Code uncomment line below // reader.BarcodeTypesToFind.QRCode := true; // Setup possible barcode orientations ( ato support rotated images) // see BarCode Reader SDK - OrientationType enum for more variations // uncomment to support more orientations like right to left { reader.Orientation := 1 or //OrientationType.HorizontalFromLeftToRight 16 or // OrientationType.HorizontalFromRightToLeft 32768 or // OrientationType.VerticalFromBottomToTop 2; // OrientationType.VerticalFromTopToBottom; } // uncomment to enable processing of negative barcodes (white bars on dark background) // reader.SearchNegative := true; // uncomment to Enable Heuristic Mode (try different image processing modes if the default failed). // Helps on photos with poor lighting conditions. //reader.HeuristicMode := true; // define subfolder where we have images pathWithImages := '.\Images\'; imageType := '*.jpg'; // can also be *.png, *.tiff, *.bmp, *.PDF // now search for files with images and processing them one by one if FindFirst(pathWithImages + imageType, faAnyFile, SR) = 0 then begin repeat if (SR.Attr <> faDirectory) then begin writeLn(SR.Name); writeLn('------------------'); // processing the file reader.ReadFromFile(pathWithImages + SR.Name); for i := 0 to reader.FoundCount - 1 do begin writeLn( '#' + IntToStr(i) + ' barcode with value ' + reader.GetFoundBarcodeValue(i)+ ' at ' + FloatToStr(reader.GetFoundBarCodeLeft(i)) + ',' + FloatToStr(reader.GetFoundBarCodeTop(i)) ); end; writeLn('------------------'); end; until FindNext(SR) <> 0; FindClose(SR); end; WriteLn('Press any key to exit...'); ReadLn; reader := varEmpty; end.
Click here to get your Free Trial version of the SDK
also available as: