Einzelnen Beitrag anzeigen

hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#2

Re: Barcode, DataMatrix mit Webcam und DLL

  Alt 25. Jul 2007, 17:32
So....

Ich hab diese Seite hier gefunden guckst du ?

Da kann man sich ein SDK downloaden, mit dem man alle möglichen barcodes aus Bitmaps lesen kann.


So es hat zwar beispiele für Delphi aber nicht die die ich brauche.
Der Code den ich brauche, gibts nur in C
deshalb wollte ich fragen, ob ihr mir helfen könntet den zu übersetzen


Hier der C Code aus dem Beispiel
Code:
  myBarcode.iBC_Type = BC_DATAMATRIX;
  myBarcode.iBC_Length = 0;
  myBarcode.iBC_Checksum = BC_NONE;
  myBarcode.iBC_Orientation = BC_0 | BC_90 | BC_180 | BC_270;
  myBarcode.iBC_ReadMultiple = BC_MULTI;
  myBarcode.iBC_LightMargin = DM_DEFAULT_LIGHT_MARGIN;
  myBarcode.iBC_ScanDistance = DM_DEFAULT_SEARCH_DISTANCE;
  myBarcode.iBC_ScanDistBarcode = 10;
  myBarcode.iBC_Percent = BC_PERCENT;
  myBarcode.iBC_MaxHeight = DM_DEFAULT_MAX_HEIGHT;
  myBarcode.iBC_MinHeight = DM_DEFAULT_MIN_HEIGHT;
  myBarcode.iBC_MaxNoVal = BC_MAX_NO_VAL;
  myBarcode.iBC_Tolerance = DM_DEFAULT_TOLERANCE;
  myBarcode.iBC_StartX = 0;
  myBarcode.iBC_StartY = 0;
  myBarcode.iBC_SizeX = 0;
  myBarcode.iBC_SizeY = 0;
  myBarcode.iLaengeVon = 0;
  myBarcode.iLaengeBis = 0;
So sieht der original Delphi Code aus, welcher allerdings nur Strichcodes erkennt und keine DataMatrix oder PDF417

Delphi-Quellcode:
  myBarcode.iBC_Type := BC_ALL;
  myBarcode.iBC_Length := 0;
  myBarcode.iBC_Checksum := BC_CHECKNONE;
  myBarcode.iBC_Orientation := BC_0 or BC_90 or BC_180 or BC_270;
  myBarcode.iBC_ReadMultiple := BC_MULTI;
  myBarcode.iBC_LightMargin := BC_LIGHTMARGIN;
  myBarcode.iBC_ScanDistance := BC_SCANDISTANCE;
  myBarcode.iBC_Percent := BC_PERCENT;
  myBarcode.iBC_ScanDistBarcode := 1;
  myBarcode.iBC_MaxHeight := 0;
  myBarcode.iBC_MinHeight := 0;
  myBarcode.iBC_MaxNoVal := BC_MAXNOVAL;
  myBarcode.iBC_Tolerance := BC_TOLERANCE;
  myBarcode.iBC_StartX := 0;
  myBarcode.iBC_StartY := 0;
  myBarcode.iBC_SizeX := 0;
  myBarcode.iBC_SizeY := 0;
  myBarcode.iLaengeVon := 4;
  myBarcode.iLaengeBis := 100;
Ich hab dan mal alles so geändert:

Delphi-Quellcode:
  myBarcode.iBC_Type := BC_DATAMATRIX;
  myBarcode.iBC_Length := 0;
  myBarcode.iBC_Checksum := BC_CHECKNONE;
  myBarcode.iBC_Orientation := BC_0 or BC_90 or BC_180 or BC_270;
  myBarcode.iBC_ReadMultiple := BC_MULTI;
  myBarcode.iBC_LightMargin := DM_DEFAULT_LIGHT_MARGIN;
  myBarcode.iBC_ScanDistance := DM_DEFAULT_SEARCH_DISTANCE;
  myBarcode.iBC_Percent := BC_PERCENT;
  myBarcode.iBC_ScanDistBarcode := 10;
  myBarcode.iBC_MaxHeight := DM_DEFAULT_MAX_HEIGHT;
  myBarcode.iBC_MinHeight := DM_DEFAULT_MIN_HEIGHT;
  myBarcode.iBC_MaxNoVal := BC_MAXNOVAL;
  myBarcode.iBC_Tolerance := BC_TOLERANCE;
  myBarcode.iBC_StartX := 0;
  myBarcode.iBC_StartY := 0;
  myBarcode.iBC_SizeX := 0;
  myBarcode.iBC_SizeY := 0;
  myBarcode.iLaengeVon := 0;
  myBarcode.iLaengeBis := 0;
Jedoch kommt dann beim ausführen des Codes die Meldung

Invalid floating point Oparation


Mit dem Code für nur Strichcodes hat die erkennung einwandfrei geklappt

ich hoffe ihr könnt mir helfen
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat