![]() |
|
قراءة الباركود في دلفي - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : قراءة الباركود في دلفي (/showthread.php?tid=6446) |
قراءة الباركود في دلفي - seddik_xp - 16-09-2014 المشروع ZBar for Windows لقرائة الباركود بأنواعه عبر استخدام كاميرا الويب او ملف صورة كود : http://sourceforge.net/projects/zbarw/files/الكود المصدري مع بعض الامثلة لاستخدام ملفات الـ DLL بعدة لغات منها C , C++, pERL , PYTHON . مع توفر ملفات Header لكل منها . كود : http://sourceforge.net/p/zbarw/code/ci/default/tarballبحثت كثيرا عن مثال بالدلفي لكني لم اجد الا سورس لقرائة الباركود من ملف صورة فقط . ان امكن احد الاخوة استخدام مكتبة ZBar.pas الموجودة في نفس المشروع للقراءة من الويب كام هناك امثلة للاستخدام مع السي ++. كود : #include <iostream>
#include <zbar.h>
using namespace std;
using namespace zbar;
class MyHandler : public Image::Handler
{
void image_callback (Image &image)
{
for(SymbolIterator symbol = image.symbol_begin();
symbol != image.symbol_end();
++symbol)
cout << "decoded " << symbol->get_type_name() << " symbol "
<< "\"" << symbol->get_data() << "\"" << endl;
}
};
int main (int argc, char **argv)
{
// create and initialize a Processor
const char *device = "/dev/video0";
if(argc > 1)
device = argv[1];
Processor proc(true, device);
// configure the Processor
proc.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
// setup a callback
MyHandler my_handler;
proc.set_handler(my_handler);
// enable the preview window
proc.set_visible();
proc.set_active();
try {
// keep scanning until user provides key/mouse input
proc.user_wait();
}
catch(ClosedError &e) {
}
return(0);
}قراءة الباركود في دلفي - seddik_xp - 21-09-2014 كيف تحويل الكود الي دلفي كود : #include <iostream>
#include <zbar.h>
using namespace std;
using namespace zbar;
class MyHandler : public Image::Handler
{
void image_callback (Image &image)
{
for(SymbolIterator symbol = image.symbol_begin();
symbol != image.symbol_end();
++symbol)
cout << "decoded " << symbol->get_type_name() << " symbol "
<< "\"" << symbol->get_data() << "\"" << endl;
}
};
int main (int argc, char **argv)
{
// create and initialize a Processor
const char *device = "/dev/video0";
if(argc > 1)
device = argv[1];
Processor proc(true, device);
// configure the Processor
proc.set_config(ZBAR_NONE, ZBAR_CFG_ENABLE, 1);
// setup a callback
MyHandler my_handler;
proc.set_handler(my_handler);
// enable the preview window
proc.set_visible();
proc.set_active();
try {
// keep scanning until user provides key/mouse input
proc.user_wait();
}
catch(ClosedError &e) {
}
return(0);
}قراءة الباركود في دلفي - leader_dz - 30-09-2014 أخي ألا يوجد كود بالبسكال يعمل نفس عمل ......لأنني لست متمكن للغة c . قراءة الباركود في دلفي - seddik_xp - 02-10-2014 قمت بكاتبة البرنامج بدلفي مند عدة أيام اقدمه لكم كود : program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Zbar in 'Zbar.pas';
var
device: pansichar;
proc : zbar_processor_t;
symbol:zbar_symbol_t;
image : zbar_image_t ;
procedure MyHandler(img: zbar_image_t; userdata: Pointer); cdecl;
var
sym:zbar_symbol_t;
stype : zbar_symbol_type_t;
begin
sym := zbar_image_first_symbol(img);
stype := zbar_symbol_get_type(sym);
writeln(zbar_get_symbol_name(stype), zbar_get_addon_name(stype),
zbar_symbol_get_data(sym));
writeln(zbar_get_symbol_name(stype), zbar_get_addon_name(stype),
zbar_symbol_get_data(sym));
end;
begin
try
device:= '/dev/video0';
//create a Processor
proc := zbar_processor_create(1);
//initialize the Processor
zbar_processor_init(proc, device, 1);
// setup a callback
//My_Handler.Create ;
zbar_processor_set_data_handler(proc, MyHandler, nil);
//enable the preview window
zbar_processor_set_visible(proc, 1);
zbar_processor_set_active(proc, 1);
//keep scanning until user provides key-mouse input
try
zbar_processor_user_wait(proc, -1);
finally
end;
//clean up */
zbar_processor_destroy(proc);
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.كود : http://www.mediafire.com/download/wt77ho7sanzad1b/Zbar_Cam_Scanner_Win.rarكود : http://www.mediafire.com/download/wt77ho7sanzad1b/Zbar_Cam_Scanner_Win.rarالفارق بين الكود السابق في سي++ هو قراءة الرموز الموجودة في الصورة الملتقطة باستخدام حلقة تكرارية أي انه لو وجد اكثر من رمز باركود سيتم قرائتها كلها. غير انني في المثال المرفق اكتفيت بقراءة رمز واحد و ههو الأول. يمكنك بهدا المثال الاستغناء عن قارئ الباركود و تعويضه بكاميرا الكمبيوتر 'Webcam'. |