[ bobans72 @ 28.04.2013. 01:53 ] @
Pozdrav svima na forumu !!!

Kako da napisem (Cod) za prikaz slike u IMAGE komponenti za CelikAPI.dll ?
Programski jezik DELPHI.
[ savkic @ 28.04.2013. 10:10 ] @
> Kako da napisem (Cod) za prikaz slike u IMAGE komponenti za CelikAPI.dll ?

Pogledaj www.elitesecurity.org/t410886-1#2709623 i diskusiju u toj temi, imaš kod i za čitanje podataka a dat je i za snimanje slike.
[ bobans72 @ 28.04.2013. 11:04 ] @

Hvala na brzom odgovoru.

Pogledao sam vaš primer a i (dogriz-ov kod) ali u njemu nema prikaz slike u TImage komponenti u dogrizovom kodu samo sacuva sliku a ne prikazuje je u komponenti.
Ali me interesuje kako prilikom ubacivanja lične karte u čitač prikaže i sliku u TImage komponenti kao sto prikazuje podatke u TTNTMemo.
Pokušavao sam celog dana i kako kada ubcim ličnu kartu da pročita podatke sa slikom a kad je izvadim da te podatke ukloni i da bude spremno za novo ubacivanje lične karte ali mi ne ide od ruke.

Ako možete da mi posaljete novi primer bio bih vam zahvalan.

Pozdrav !!!



[Ovu poruku je menjao bobans72 dana 28.04.2013. u 12:47 GMT+1]
[ savkic @ 28.04.2013. 12:05 ] @
> Ali me interesuje kako prilikom ubacivanja lične karte u čitač prikaže i sliku u TImage komponenti kao sto prikazuje podatke u TTNTMemo.

Dobiješ sliku u jpg formatu na disku, samo treba da je učitaš, a to se radi sa Image.Picture.LoadFromFile.
Prethodno dodaj jpeg unit u uses klauzulu.
[ bobans72 @ 28.04.2013. 23:45 ] @
Pozdrav !!!

Nisam mislio na to da snimi sliku na disku pa odatle da je učita to sam već probao ali kad nije ubačena lična karta prijavi grešku (JPG Error #53) dok nema nikakvih grešaka i problema sa ostalim podacima ako lična karta nije ubačena u čitač ne prikazuje ništa. Mene je interesovalo kako da pročita direktno iz lične karte sliku bez prethodnog snimanja na disk da li je to moguće da se uradi i kako.

Ja sam probao ovako što se tiče slike ali prijavlju je grešku gore navedenu na početku:



A što se tiče automatskog čitanja lične karte pri ubacivanju u čitač dok je program aktivan pročita ličnu kartu a kada se izvadi lična karta iz čitača da ukloni podatke iz tih polja isto dok je program aktivan. Ja sam pokusavao nešto sa (EidStartup(1), EidCleanup) ali mi to nije uspelo ili nisam na pravom mestu postavio. Imam instaliranu MUP-ovu Celik aplikaciju i ona radi to bez problema što znači da je to moguće uraditi ali ne znam kako trenutno mi je to nepoznato ali me interesuje kako bih to izgledalo da se odradi u Delphi-ju.

Evo i prikačenog fajla.

[Ovu poruku je menjao bobans72 dana 29.04.2013. u 01:50 GMT+1]
[ savkic @ 29.04.2013. 12:05 ] @
> Nisam mislio na to da snimi sliku na disku pa odatle da je učita to sam već probao ali kad nije ubačena lična karta prijavi grešku (JPG Error #53)
> dok nema nikakvih grešaka i problema sa ostalim podacima ako lična karta nije ubačena u čitač ne prikazuje ništa. Mene je
> interesovalo kako da pročita direktno iz lične karte sliku bez prethodnog snimanja na disk da li je to moguće da se uradi i kako.

Onda ti treba metoda LoadFromStream. TPicture je nema pa moraš zaobilaznim putem:

Code:

var
  img: Jpeg.TJPEGImage;
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  img := TJPEGImage.Create;  
  try
    // Prvo sliku procitanu iz licne karte snimi u ms (memory stream) umesto na disk
    img.LoadFromStream(ms);
    Image.Picture.Assign(img);
  finally
    img.Free;
    ms.Free;
  end;
 end;


> Ja sam probao ovako što se tiče slike ali prijavlju je grešku gore navedenu na početku:

Možda slika ne postoji pa otuda greška.

> A što se tiče automatskog čitanja lične karte pri ubacivanju u čitač dok je program aktivan pročita ličnu kartu a kada se izvadi lična karta
> iz čitača da ukloni podatke iz tih polja isto dok je program aktivan.

Ti ubaci neki timer koji ce svake sekunde proveravati (pokušavati da pročita) da li je karta unutra, ako jeste prikaži podatke, ako nije isprazni sva polja.
[ bobans72 @ 30.04.2013. 01:11 ] @
Kako da pročitam sliku iz lične karte da bih je posle snimio ?

Pokusao sam ovako ali opet greška: JPEG error #42

procedure TForm1.BitBtn1Click(Sender: TObject);
var
img: Jpeg.TJPEGImage;
ms: TMemoryStream;
Slika: TEidPortrait;
begin

FillChar(Slika, SizeOf(TEidPortrait), 0);
EidBeginRead('');
EidReadPortrait(@Slika);
EidEndRead;
ms := TMemoryStream.Create;
img := TJPEGImage.Create;
try

ms.Read(Slika, SizeOf(TEidPortrait));//

// Prvo sliku procitanu iz licne karte snimi u ms (memory stream) umesto na disk

img.LoadFromStream(ms);
Image1.Picture.Assign(img);

finally
FreeAndNil(img);
ms.Free;
end;
end;
[ savkic @ 30.04.2013. 08:50 ] @
Evo primer.
[ mnenad @ 17.10.2014. 08:53 ] @
Pozdrav svima,
Znam da je tema malo starija ali nemam druge. Pokusavam da napravim cirac lk u delphi-ju pomocu savkicevog prevoda celikapi-ja, medjutim nikako ne vraca podatke iz LK, kao da licnu kartu nisam ni ubacio u citac. Cak sta vise ni svi ovi test projekti koje ste odradili mi isto tako ne rade. Prvo sam naravno pomislio da je do drajvera citaca ili nesto slicno, ali MUP-ov software radi sasvim normalno. Molim vas ako iko zna o cemu se radi, ceo jucerasnji dan lupam glavu.

[ Rapaic Rajko @ 17.10.2014. 12:01 ] @
Koja verzija Delphi-ja?
Sta tacno dobijes kad pokusas citanje lk, neki text, poruku (daj sliku)?

Pozz

P.S. Ako imas neke warnings (poruke kompajlera) i to dojavi.
[ mnenad @ 17.10.2014. 15:50 ] @
Delphi 7 , ali nije u tome problem, funkcije vracaju vrednost -1 i nakon pomoci prijatelja problem je sledeci: api sam testirao sa svojom LK koju sam zamenio pre mesec dana otprilike, a na njoj je ocigledno nova verzija cipa ili nacin zapisa, samim tim i nova verzija celikapi.dll-a a time i nova verzija header file-a, koji ima vise funkcija u sebi tako da sve ovo nije radilo zbog toga, kada smo preveli deo novog api-a vezano za citanje podataka o lk broj lk izdavalac i sl, proradilo je kako treba. Meni je ostalo da prevedem ostatak api-a gde se razlikuje da bi citao sve podatke. Inace moju LK nije htela da procita ni stara verzija MUP-ovog software-a.
[ savkic @ 17.10.2014. 16:12 ] @
Kad zavrsis sa prevodom, postavi ga ovde, koristice i drugima pa to posle samo treba objediniti da radi i sa starim i novim.
[ mnenad @ 17.10.2014. 16:15 ] @
Naravno, cim zavrsim, ovaj novi prevod bi inace trebalo da radi i sa starim, kako god testiracu
[ mnenad @ 17.10.2014. 17:11 ] @
Evo updateovanog prevoda, razlika je u duzinama, povecali su polja sa podacima o imenima adresama itd na uglavnom 200 i dodali neke funkcije, nisam napravio citanje sertifikata i lozinke jer ne znam tacno ni cemu sluze, uglavnom updateovao sam ga da radi sa onim podacima koji uglavnom i interesuju one koji citaju lk.


[ savkic @ 17.10.2014. 20:46 ] @
Vidim da su neke stare funkcije izbacili i dodali nove, šteta što nisu sredili ujedno i API, čuvanje stringova im je suviše komplikovano.
Sredio sam još malo funkcije i kod, dodao koje su nedostajale i uklonio izbačene. Novi CelikApi.dll radi i sa starim LK tako da se ovo može slobodno koristiti, nisam probao na novoj ali verujem da je OK pošto tebi radi.
[ kzikica @ 01.11.2014. 08:02 ] @
Problem sa:

EidEndRead

jer tada "izbaci" iz programa, odnosno u Delphiju daje

application-defined exeption ....

Pre te, poslednje komande sve je kako treba i pročita sve podatke. Ali kada treba da zatvori rad sa čitačem - kraj.

[ kzikica @ 01.11.2014. 09:19 ] @
CelikApi v1.2 radi u verziji Delphi7.
Ja koristim Delphi XE4 i u ovoj verziji prijavljuje grešku prilikom zatvaranja programa.
Prethodna verzija CelikApi savršeno radi i na D7 i na DXE4.
Rad sa stringovima ili tako nešto? Ima li rešenja?
[ savkic @ 01.11.2014. 14:21 ] @
Greška je bila u EidBeginRead, promenjena je definicija funkcije, probaj sad.
[ kzikica @ 02.11.2014. 09:51 ] @
[ kzikica @ 02.11.2014. 17:04 ] @
Program radi extra!

Kada smo već kod trimovanja izmeni u liniji 349

AData.HouseNumber

na

AData.Street

I, što da ne, da se u programu doda red 80 za prikazivanje matičnog broja:

mmoPodaci.Lines.Add('Matični broj: ' + AFixPerData.personalNumber);


[ hzoli024 @ 26.02.2016. 10:42 ] @
Pozdrav,

Ja sam skinuo ovu aplikaciju, i lepo i radio. Posle dosta dugo vremena postao ponovo aktualan, da radim citanja licnih karta preko delphi-a, medjutim sad isti program nece nista da izcita.
Posle malo debugiranja nasao sam da EidStartup se vraca sa greskom -4 (EID_E_NOT_INITIALIZED = -4;), pa zbog toga je vec logicno zast nece da izcita nista.
Skinuo sam sve najsveze sa MUP-ov sajta ali ni dalje. Medjutim njihov aplikacija radi.

Da li ima neko ideju sta se tu dogadja?
[ savkic @ 26.02.2016. 12:44 ] @
> Ja sam skinuo ovu aplikaciju, i lepo i radio. Posle dosta dugo vremena postao ponovo aktualan, da radim citanja licnih karta preko
> delphi-a, medjutim sad isti program nece nista da izcita.

Da li si nešto menjao, tipa kompajlirao sa drugim Delphijem?

> Posle malo debugiranja nasao sam da EidStartup se vraca sa greskom -4 (EID_E_NOT_INITIALIZED = -4;), pa zbog toga je vec logicno zast
> nece da izcita nista. Skinuo sam sve najsveze sa MUP-ov sajta ali ni dalje. Medjutim njihov aplikacija radi.
> Da li ima neko ideju sta se tu dogadja?

Koju verziju LČ imaš, novu ili staru? Takodje postoje i dve verzije dlla pa i dve verzije prga, moraš gledati da upariš ta dva tačno.
[ hzoli024 @ 29.02.2016. 08:49 ] @
Posto mi se isteklo dobio sam novu, mozda onda do toga je, ali na njihovom sajtu nisam video da postoji dva verzija dll-a. Ako postoji gde mogu preuzimati?
[ savkic @ 29.02.2016. 13:35 ] @
> Posto mi se isteklo dobio sam novu, mozda onda do toga je, ali na njihovom sajtu nisam video da postoji dva verzija dll-a. Ako postoji gde mogu preuzimati?

Ovde su poslednje verzije: http://www.mup.gov.rs/cms_lat/...a.nsf/licna-karta-aplikacija.h.
Sad sam probao i meni radi sa mojom, da li ti radi iz Celika? Da li si stavio dll u dir gde je i exe i da li imas instalirane sve MS runtime biblioteke?
[ hzoli024 @ 01.03.2016. 12:23 ] @
Iz celika radi, ai preko njega kod verifikacije od 4 samo 3 zelena sterlica se pojavi, ranije ako se dobro secam imao sam sva 4, ali osim toga mogu da vidim sva podataka.
Skinuo sam medjutim nista promena. Datum dll-a je:24.08.2015, dll je pored exe fajla. Vec sam instalirao sve sto sam nasao na njihovom sajtu.
Kod greska je i dalje ista.

Dal postoji mogucnost da ti posaljem projekt napr preko gmail-a, ili ti meni?
[ savkic @ 01.03.2016. 12:50 ] @
Mislim da je već kačen kod ovde negde u diskusiji ali evo za svaki slučaj sve pa probaj još jednom.
[ hzoli024 @ 01.03.2016. 13:32 ] @
Ova verzija je ok, hvala ti.
Vidim nekolko razlika u kodun apr Eidsatrtup parmetar je 2 i jos neke.
[ pseudo_programer @ 16.03.2016. 07:32 ] @
Poskidao sam sve moguce i nemoguce verzije fajla CeliAPI.dll i sa sajta MUP-a i odavde. Nijednu niti mogu da registrujem pomoću regsvr32 niti da referenciram iz vb.NET aplikacije u VS2015. Gde grešim?
[ savkic @ 16.03.2016. 12:18 ] @
Ja ne znam da li Celik postoji u varijanti ActivX/Com librarija, to moraš proveriti tamo na sajtu, mi smo ovde radili sa klasičnim dllom. Preko tog dlla možeš i ti, samo ga moraš deklarisati pravilno u tvojoj aplikaciji, pogledaj kakva je tačna sintaska za učitavanje klasičnih dllova.