I don't know about the barcode reader, but I have two ideas to try to Deskew the image:
1. Try using Deskew, then read the barcode.
procedure TForm1.DeSkew1Click(Sender: TObject);
{ DeSkew. }
var
i: double;
begin
i := ImageEnView.Proc.SkewDetection;
ImageEnView.Proc.RotateAndCrop(i);
ImageEnView.Bitmap.Modified := True;
ImageEnView.Update;
end;
2. If you have a touch enabled monitor you can also rotate the image with touch. It is very easy to correctly deskew an image:
a. Scan the barcode into an added layer
b. call this code
ImageEnView.MouseInteract := [miMoveLayers, miResizeLayers, miRotateLayers];
ImageEnView.Gestures.Pan.Enabled := False;
ImageEnView.Gestures.Zoom.Enabled := False;
ImageEnView.Gestures.LayerRotate.Enabled := True;
ImageEnView.Gestures.LayerMove.Enabled := False;
c. Rotate the image with two fingers until the rotation angle approaches the correct angle.
I have the Deskew and Touch enabled layer rotation in my test scanner application and both work nicely. Either way should solve your problem. Note: I have not tried to read the barcode with IEVision after deskewing.
William Miller
Adirondack Software & Graphics
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html