» »

[Delphi] Unit za EXIF metadata (jpg)

[Delphi] Unit za EXIF metadata (jpg)

b0B3k ::

Zanima me, če kdo pozna kak Unit oz. kak drug lib za delo z jpg datotekami. Predvsem potrebujem nekaj s čemer bi lahko bral in zapisoval po metadata podatkih slik (JPEG).

Jst ::

uses Jpeg;
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

b0B3k ::

... bral in zapisoval po metadata podatkih ... ;)

Jst ::

Metapodatke lahko bereš, spreminjaš in zapisuješ po skoraj vsaki datoteki (exe, dll,...).
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

b0B3k ::

a tud EXIF ?

Jst ::

Če klikniš properties na določen file v explorerju in se ti prikažejo metapodatki, potem je odgovor DA.

EXIF, če se ne motim, je pa povečini zapis digitalnih fotoaparatov. In ker ne posredujem DSCja, ki bi uporabljal ta format... Ne vem.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Jst ::

Sicer več ne vem vira, kjer sem dobil primer, ampak ti ga copy/paste.

In sicer ti napiše podatke o exe datoteki:

const
  InfoNum = 10;
  InfoStr: array[1..InfoNum] of string = ('CompanyName', 'FileDescription', 'FileVersion', 
'InternalName', 'LegalCopyright', 'LegalTradeMarks', 
'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments');
var
  S: string;
  n, Len, i: DWORD;
  Buf: PChar;
  Value: PChar;
begin
  S := Application.ExeName;
  n := GetFileVersionInfoSize(PChar(S), n);
  if n > 0 then
  begin

    Buf := AllocMem(n);
    Memo1.Lines.Add('VersionInfoSize = ' + IntToStr(n));
    GetFileVersionInfo(PChar(S), 0, n, Buf);
    for i := 1 to InfoNum do
      if VerQueryValue(Buf, PChar('StringFileInfo\040904E4\' + InfoStr[i], Pointer(Value), Len) then
        Memo1.Lines.Add(InfoStr[i] + ' = ' + Value);
    FreeMem(Buf, n);
  end
  else
    Memo1.Lines.Add('No version information found');
end;


[edit - kar se tag-ov tiče, si na pravi poti ;) - vsc]
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Zgodovina sprememb…

  • spremenil: Vesoljc ()

Jst ::

Pa moderatorje bi prosil za poduk, kater tag moram uporabiti za kodo? [ st . koda ] or something?
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

b0B3k ::

ej, fenkju ver mač :D
Bom danes zvečer poskusil kaj te kode uporabiti ...
še enkrat hvala

b0B3k ::

Žal to ni to ...
Koda vrača Version info in ne pravih oz. tistih metadata (summary) podatkov, ki jih jaz potrebujem...

Jst ::

Moj sony DSC zapiše naslednje podatke v jpg datoteko:

Width, Height, Horizontal Resolution, Vertical Rasolutio, Bit Depth...... itd

In te lastnosti zapišeš v InfoStr:

const
  Infonum = 19;  // oziroma toliko, kolikor jih pac je v tvojem primeru
  array[1..InfoNum] of string = ('Width', 'Height', 'Horizontal Resolution', 'Vertical Rasolutio', 'Bit Depth', 'Frame Count', 'Equipment Make', 'Camera Model' {in nadaljujes naprej, kolikor jih je})


In to je v bistvu to. Napiši kodo, pa pogledamo.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

Jst ::

Aja... Pa če bi mogoče malo prebral prejšno kodo, bi videl, da vrača številko verzije.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

b0B3k ::

Veš da sem prebral zgornjo kodo, sem pa tudi ugotovil, da si primer našel v Delphi Helpu ;) , kar je vse čist ok, sam menim, da to še vedno ni to kar js iščem, kodo sem poskusil tudi spreminjati (sicer ne array[1..InfoNum] of string = ('Width' ... ampak 'title' 'comment' itd.) , vendar mislim da je GetFileVersionInfo predvsem namenjnen točno tistemu, kar že ime samo pove in sicer verziji file-a.
Slišal sem tudi da menda obstaja nek dEXIF ki menda bere te podatke. ČE jih pa tudi ureja pa ne vem.
Se bom še mal pozanimal

fenks enivej :D
ČE imaš še kako drugo idejo kar na dan z njo ...

LP

Jst ::

Help je tvoj najboljši prijatelj.

Dobro si zapomni to.
Islam is not about "I'm right, you're wrong," but "I'm right, you're dead!"
-Wole Soyinka, Literature Nobelist
|-|-|-|-|Proton decay is a tax on existence.|-|-|-|-|

b0B3k ::

:D tell me something new ...
sam kaj k včasih tud najboljši prijatelji zatajijo 0:) :P


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344317154 (57157) Macketina
»

MSN live messenger

Oddelek: Pomoč in nasveti
479360 (4933) Zoro3
»

[baze] Povezava do slike ali BLOB?

Oddelek: Programiranje
101564 (1361) BlueRunner
»

[C] MySQL

Oddelek: Programiranje
292699 (1721) Tutankhamun
»

Pointer-ji v C-ju

Oddelek: Programiranje
291683 (1381) rokpok

Več podobnih tem