Hallo,
ich hoffe ihr könnt mir helfen.
Ich schreibe gerade einen sehr simplen Exif-Reader. Er soll bloss 6 Werte auslesen.
Habe mich im Internet etwa 2stunden abgequält um dafür ne Lösung zu finden, da hab ich dann die ASCII-Werte der einzelnen Eigentschaften gefunden. Nur will nun bei 4 von 6 Eigenschaften nichts gescheites bei raus kommen.
Bitmap MyPhoto = new Bitmap(openFileDialog1.FileName);
PropertyItem[] props = MyPhoto.PropertyItems;
Encoding ascii = Encoding.ASCII;
//CamModel
const int IDCamModel = 272;
PropertyItem Make = MyPhoto.GetPropertyItem(IDCamModel);
string kameramodell_inhalt = ascii.GetString(Make.Value, 0, Make.Len - 1);
kameramodell.Text = kameramodell_inhalt;
//Date
const int IDDate = 36867;
PropertyItem Make2 = MyPhoto.GetPropertyItem(IDDate);
string datum_inhalt = ascii.GetString(Make2.Value, 0, Make2.Len - 1);
datum.Text = datum_inhalt;
//Belichtungszeit
const int IDBelichtung = 33434;
PropertyItem Make3 = MyPhoto.GetPropertyItem(IDBelichtung);
string belichtung_inhalt = ascii.GetString(Make3.Value, 0, Make3.Len - 1);
belichtungszeit.Text = belichtung_inhalt;
//Blende
const int IDBlende = 33437;
PropertyItem Make4 = MyPhoto.GetPropertyItem(IDBlende);
string blende_inhalt = ascii.GetString(Make4.Value, 0, Make4.Len - 1);
blende.Text = blende_inhalt;
//ISO
const int IDISO = 34855;
PropertyItem Make5 = MyPhoto.GetPropertyItem(IDISO);
string iso_inhalt = ascii.GetString(Make5.Value, 0, Make5.Len - 1);
iso.Text = iso_inhalt;
//Brennweite
const int IDBrennweite = 37386;
PropertyItem Make6 = MyPhoto.GetPropertyItem(IDBrennweite);
string brennweite_inhalt = ascii.GetString(Make6.Value, 0, Make6.Len - 1);
brennweite.Text = brennweite_inhalt;
Die ersten beiden Angaben funktionieren noch. danach nicht mehr. ein Screenshot zur Verdeutlichung im Anhang. Hoffe ihr könnt mir helfen.
kenn das exif format nicht im detail, aber bist du sicher, dass es alles strings sind, die da drin stehen?
vielleicht sind es and er stelle eine integer oder so. würde für die bezeichner sprechen.
Hab es mal als int versucht. Das ging überhaupt nicht, da Label nur string akzeptiert...
ein object hat immer eine ToString() methode. Und da jedes Objekt in .net von object ableitet, hat ein int eine TString Methode. Das ist aber Basiswissen.
[Hinweis] Wie poste ich richtig? Punkt 1.1.1
Gruß pdelvo
http://www.exif.org/Exif2-2.PDF
Am besten nach den Konstanten suchen, und die Daten-Typen beachten (signed/unsigned). Mit Hilfe der BitConverter Klasse sollte das recht einfach gehen.
Spooky
Mit Hilfe der BitConverter Klasse sollte das recht einfach gehen.
Zu diesem Zeitpunkt wusste er das bereits von dort.
@Kvn
Wie poste ich richtig? Punkt 2
[EDIT=herbivore]geschlossen[/EDIT]
Jürgen