private void button1_Click(object sender, EventArgs e) { string outputFile = @"c:\temp\camerasettings.txt"; List <Makernote> makernotes = MakernoteFactory.GetMakernotes(s_Imagefilename); Makernote camerasettings = makernotes[0]; CameraSettingsFactory.PrintCameraSettings(camerasettings, s_Imagefilename, outputFile); //MakernoteFactory.PrintMakernotes(makernotes, s_Imagefilename, outputFile); Form3 tagsForm = new Form3(); tagsForm.LoadCameraSettings(); tagsForm.Show(); }
public static void PrintCameraSettings(Makernote camerasettings, string filename, string outputfile) { string tagName = null; string value = null; string seperator = "----------------------------------------------------------------------"; int index; string output = "Camera Settings für Bild: " + Path.GetFileName(outputfile) + Environment.NewLine + Environment.NewLine; for (int i = 0; i < camerasettings.Length - 1; i++) { index = i + 1; tagName = CameraSettingsFactory.GetCameraSettingName(index); string firstPart = "Index: " + index.ToString() + Environment.NewLine + "Tagname: " + tagName + Environment.NewLine + "Wert: "; value = camerasettings.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); output = output + seperator + Environment.NewLine + firstPart + value + Environment.NewLine + Environment.NewLine; } File.WriteAllText(outputfile, output); }
public static string GetValuesString(Makernote makernote, int length) { string values = null; if (makernote.Type == 2) { return(makernote.Values[0]); } for (int i = 0; i < makernote.Values.Count; i++) { string value = makernote.Values[i]; if (makernote.IsHex) { value = ConverterFactory.HexstringToInt32(value).ToString(); } string blanks = ""; blanks = blanks.PadRight(length, ' '); if (values == null) { values = value; } else if (i % 12 == 0) { values = values + ", " + Environment.NewLine + blanks + value; } else { values = values + ", " + value; } } return(values); }
public void LoadCameraSettings() { this.Text = "Canon CameraSettings Tags"; string filename = Form1.Filename; if (string.IsNullOrEmpty(filename)) { MessageBox.Show("Kein Bild geladen"); return; } listView1.View = View.Details; List <Makernote> makernotes = MakernoteFactory.GetMakernotes(filename); //------------------------------------------------------- //Canon CameraSettings Tags Makernote cameraSettings = makernotes[0]; int index; string tagName = null; string value = null; for (int i = 0; i < cameraSettings.Length - 1; i++) { index = i + 1; tagName = CameraSettingsFactory.GetCameraSettingName(index); value = cameraSettings.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); if (index == 1) { tagName = "Makro Mode"; value = CameraSettingsFactory.GetValueMacroMode(value); } else if (index == 3) { tagName = "Quality"; value = CameraSettingsFactory.GetValueQuality(value); } else if (index == 4) { tagName = "Canon Flash Mode"; value = CameraSettingsFactory.GetValueFlashMode(value); } else if (index == 5) { tagName = "Continuous Drive"; value = CameraSettingsFactory.GetValueContinuousDrive(value); } else if (index == 7) { tagName = "Focus Mode"; value = CameraSettingsFactory.GetValueFocusMode(value); } else if (index == 9) { tagName = "Record Mode"; value = CameraSettingsFactory.GetValueRecordMode(value); } else if (index == 10) { tagName = "Canon Image Size"; value = CameraSettingsFactory.GetValueImageSize(value); } else if (index == 11) { tagName = "Easy Mode"; value = CameraSettingsFactory.GetValueEasyMode(value); } else if (index == 12) { tagName = "Digital Zoom"; value = CameraSettingsFactory.GetValueDigitalZoom(value); } else if (index == 13) { tagName = "Contrast"; value = CameraSettingsFactory.GetValueContrast(value); } else if (index == 14) { tagName = "Saturation"; value = CameraSettingsFactory.GetValueSaturation(value); } else if (index == 16) { tagName = "Camera ISO"; value = CameraSettingsFactory.GetValueCameraISO(value); } else if (index == 17) { tagName = "Metering Mode"; value = CameraSettingsFactory.GetValueMeteringMode(value); } else if (index == 18) { tagName = "Focus Range"; value = CameraSettingsFactory.GetValueFocusRange(value); } else if (index == 19) { tagName = "Manual AF point selection"; value = cameraSettings.Values[index].ToString(); value = CameraSettingsFactory.GetValueManualAFPointSelection(value); } else if (index == 20) { tagName = "Canon Exposure Mode"; value = CameraSettingsFactory.GetValueCanonExposureMode(value); } else if (index == 22) { tagName = "Lens Type"; value = CameraSettingsFactory.GetValueLensType(value); } else if (index == 23) { tagName = "Max Focal Length"; value = value + " mm"; } else if (index == 24) { tagName = "Mim Focal Length"; value = value + " mm"; } else if (index == 25) { tagName = "Focal Units"; value = value + "/mm"; } else if (index == 26) { tagName = "Max Aperture"; } else if (index == 27) { tagName = "Min Aperture"; } else if (index == 29) { tagName = "Flash Bits"; value = CameraSettingsFactory.GetValueLensType(value); } else if (index == 32) { tagName = "Focus Continuous"; value = CameraSettingsFactory.GetValueFocusContinuous(value); } else if (index == 34) { tagName = "Image Stabilization"; } else { continue; } ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); } listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); //int index = 0; //string tagName = null; //string value; //// MacroMode - 1 //index = index + 1; //tagName = "MacroMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// SelfTimer - 2 //index = index + 1; //tagName = "SelfTimer"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// Quality - 3 //index = index + 1; //tagName = "Quality"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// CanonFlashMode - 4 //index = index + 1; //tagName = "CanonFlashMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// ContinuousDrive - 5 //index = index + 1; //tagName = "ContinuousDrive"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// unknown - 6 //index = index + 1; //tagName = "unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// FocusMode - 7 //index = index + 1; //tagName = "FocusMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// unknown - 8 //index = index + 1; //tagName = "unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknwon"); //// RecordMode - 9 //index = index + 1; //tagName = "RecordMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// CanonImageSize - 10 //index = index + 1; //tagName = "CanonImageSize"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// EasyMode - 11 //index = index + 1; //tagName = "EasyMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// DigitalZoom - 12 //index = index + 1; //tagName = "DigitalZoom"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// Contrast - 13 //index = index + 1; //tagName = "Contrast"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// Saturation - 14 //index = index + 1; //tagName = "Saturation"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// Sharpness - 15 //index = index + 1; //tagName = "Sharpness"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// CameraISO - 16 //index = index + 1; //tagName = "CameraISO"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// MeteringMode - 17 //index = index + 1; //tagName = "MeteringMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// FocusRange - 18 //index = index + 1; //tagName = "FocusRange"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// AFPoint - 19 //index = index + 1; //tagName = " AFPoint"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// CanonExposureMode - 20 //index = index + 1; //tagName = " CanonExposureMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// unknown - 21 //index = index + 1; //tagName = " unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// LensType - 22 //index = index + 1; //tagName = " LensType"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16u"); //// MaxFocalLength - 23 //index = index + 1; //tagName = " MaxFocalLength"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16u"); //// MinFocalLength - 24 //index = index + 1; //tagName = " MinFocalLength"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16u"); //// FocalUnits - 25 //index = index + 1; //tagName = " FocalUnits"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// MaxAperture - 26 //index = index + 1; //tagName = " MaxAperture"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// MinAperture - 27 //index = index + 1; //tagName = " MinAperture"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// FlashActivity - 28 //index = index + 1; //tagName = " FlashActivity"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// FlashBits - 29 //index = index + 1; //tagName = " FlashBits"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// unknown - 30 //index = index + 1; //tagName = " unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// unknown - 31 //index = index + 1; //tagName = " unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// FocusContinuous - 32 //index = index + 1; //tagName = " FocusContinuous"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// AESetting - 33 //index = index + 1; //tagName = " AESetting"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// ImageStabilization - 34 //index = index + 1; //tagName = " ImageStabilization"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// DisplayAperture - 35 //index = index + 1; //tagName = " DisplayAperture"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// ZoomSourceWidth - 36 //index = index + 1; //tagName = " ZoomSourceWidth"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// ZoomTargetWidth - 37 //index = index + 1; //tagName = "ZoomTargetWidth"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// unknown - 38 //index = index + 1; //tagName = "unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// SpotMeteringMode - 39 //index = index + 1; //tagName = "SpotMeteringMode"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// PhotoEffect - 40 //index = index + 1; //tagName = "PhotoEffect"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// ManualFlashOutput - 41 //index = index + 1; //tagName = "ManualFlashOutput"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// ColorTone - 42 //index = index + 1; //tagName = "ColorTone"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); //// unknown - 43 //index = index + 1; //tagName = "unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// unknown - 44 //index = index + 1; //tagName = "unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// unknown - 45 //index = index + 1; //tagName = "unknown"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); //// SRAWQuality - 46 //index = index + 1; //tagName = "SRAWQuality"; //value = cameraSettings.Values[index].ToString(); //ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); ////Aufnahmemodus //string aufnamemodus = FormFactory.GetNamesAufnamemodus(cameraSettings.Values[11]); //if (aufnamemodus != "") // Form1.Textbox13 = aufnamemodus; ////AF-Betriebsart //string afBetriebsart = FormFactory.GetNamesAFBetriebsart(Convert.ToInt32(cameraSettings.Values[7])); ////AF-Bereich-Auswahlmodus //string afBereichAuswahlmodus = FormFactory.GetNamesAFBereichAuswahlmodus(Convert.ToInt32(cameraSettings.Values[32])); //////Kontrast //Form1.Textbox16_3 = cameraSettings.Values[13].Substring(3); ////Farbsättigung //Form1.Textbox16_2 = cameraSettings.Values[14].Substring(3); ////Farbton //Form1.Textbox16_4 = cameraSettings.Values[42].Substring(3); }
public void LoadShotInfo() { this.Text = "Canon ShotInfo Tags"; string filename = Form1.Filename; if (string.IsNullOrEmpty(filename)) { MessageBox.Show("Kein Bild geladen"); return; } listView1.View = View.Details; Image image = Form1.Image; PropertyItem[] prop = image.PropertyItems; Byte[] bytesMakernote = null; try { using (ExifReader reader = new ExifReader(filename)) { reader.GetTagValue <Byte[]>(ExifTags.MakerNote, out bytesMakernote); } } catch (Exception err) { MessageBox.Show("Fehler beim Einlesen der Exif-Tags." + Environment.NewLine + err); } List <Makernote> makernotes = MakernoteFactory.GetMakernotes(bytesMakernote); //------------------------------------------------------- //Canon CameraSettings Tags Makernote shotInfo = makernotes[2]; int index = 0; string tagName = null; string value; // AutoISO - 1 index = index + 1; tagName = "AutoISO"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // BaseISO - 2 index = index + 1; tagName = "BaseISO"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // MeasuredEV - 3 index = index + 1; tagName = "MeasuredEV"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // TargetAperture - 4 index = index + 1; tagName = "TargetAperture"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // TargetExposureTime - 5 index = index + 1; tagName = "TargetExposureTime"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // ExposureCompensation - 6 index = index + 1; tagName = "ExposureCompensation"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // WhiteBalance - 7 index = index + 1; tagName = "WhiteBalance"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // SlowShutter - 8 index = index + 1; tagName = "SlowShutter"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // SequenceNumber - 9 index = index + 1; tagName = "SequenceNumber"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // OpticalZoomCode - 10 index = index + 1; tagName = "OpticalZoomCode"; value = shotInfo.Values[index].ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // unknown - 11 index = index + 1; tagName = "unknown"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); // CameraTemperature - 12 index = index + 1; tagName = "CameraTemperature"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // FlashGuideNumber - 13 index = index + 1; tagName = "FlashGuideNumber"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // AFPointsInFocus - 14 index = index + 1; tagName = "AFPointsInFocus"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // FlashExposureComp - 15 index = index + 1; tagName = "FlashExposureComp"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // AutoExposureBracketing - 16 index = index + 1; tagName = "AutoExposureBracketing"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // AEBBracketValue - 17 index = index + 1; tagName = "AEBBracketValue"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // ControlMode - 18 index = index + 1; tagName = "ControlMode"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // FocusDistanceUpper - 19 index = index + 1; tagName = " FocusDistanceUpper"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // FocusDistanceLower - 20 index = index + 1; tagName = " FocusDistanceLower"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // FNumber - 21 index = index + 1; tagName = " FNumber"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // ExposureTime - 22 index = index + 1; tagName = " ExposureTime"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // MeasuredEV2 - 23 index = index + 1; tagName = " MeasuredEV2"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // BulbDuration - 24 index = index + 1; tagName = " BulbDuration"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // unknown - 25 index = index + 1; tagName = " unknown"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); // CameraType - 26 index = index + 1; tagName = " CameraType"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // AutoRotate - 27 index = index + 1; tagName = " AutoRotate"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // NDFilter - 28 index = index + 1; tagName = " NDFilter"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // SelfTimer2 - 29 index = index + 1; tagName = " SelfTimer2"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); // unknown - 30 index = index + 1; tagName = " unknown"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); // unknown - 31 index = index + 1; tagName = " unknown"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); // unknown - 32 index = index + 1; tagName = " unknown"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "unknown"); // FlashOutput - 33 index = index + 1; tagName = " FlashOutput"; value = shotInfo.Values[index].ToString(); value = ConverterFactory.HexstringToInt32(value).ToString(); ListViewFactory.AddItem(listView1, index.ToString(), "", tagName, value, "int16s"); listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); }
//1 = BYTE An 8-bit unsigned integer., //2 = ASCII An 8-bit byte containing one 7-bit ASCII code. The final byte is terminated with NULL., //3 = SHORT A 16-bit (2-byte) unsigned integer, //4 = LONG A 32-bit (4-byte) unsigned integer, //5 = RATIONAL Two LONGs. The first LONG is the numerator and the second LONG expresses the //denominator., //7 = UNDEFINED An 8-bit byte that can take any value depending on the field definition, //9 = SLONG A 32-bit (4-byte) signed integer (2's complement notation), //10 = SRATIONAL Two SLONGs. The first SLONG is the numerator and the second SLONG is the #region GetMakernotes public static List <Makernote> GetMakernotes(Byte[] allBytes) { List <Makernote> listMakernotes = new List <Makernote>(); byte[] makernotes = allBytes; Makernote makernote = new Makernote(); //bool bigEndian = false; int lengthByte = 2; int numberBadBytes = 2; int endMakernotes = 542; int beginningDataBytes = 992; string message = ""; //for (int i = 2; i < 35 * 12; i++) for (int i = 2; i < 47 * 12; i++) { makernote = new Makernote(); byte[] bytesMakernote = new byte[12]; for (int n = 0; n < 12; n++) { bytesMakernote[n] = makernotes[i + n]; } // ID byte[] bytesID = { bytesMakernote[0], bytesMakernote[1] }; string id = ConverterFactory.ByteToHex(bytesID, false); makernote.Id = id; // Type byte[] bytesType = { bytesMakernote[2], bytesMakernote[3] }; Int16 type = ConverterFactory.ByteToInt16(bytesType, true); makernote.Type = type; // isHex / Name bool isHex = false; bool bigEndian = false; string name = GetNameMakernote(id, out isHex, out bigEndian); // Length byte[] bytesLength = { bytesMakernote[4], bytesMakernote[5], bytesMakernote[6], bytesMakernote[7] }; Int16 length = ConverterFactory.ByteToInt16(bytesLength, true); makernote.Length = length; // Offest byte[] bytesOffset = { bytesMakernote[8], bytesMakernote[9], bytesMakernote[10], bytesMakernote[11] }; Int16 offset = ConverterFactory.ByteToInt16(bytesOffset, true); makernote.Offset = offset; if (id == "0027") { int l = 0; } Dictionary <int, string> dictValues = new Dictionary <int, string>(); if (offset == 0) { dictValues = ConverterFactory.GetValues(allBytes, bytesMakernote, bigEndian, type, isHex, length, offset); } else { dictValues = ConverterFactory.GetValues(allBytes, bytesMakernote, bigEndian, type, isHex, length, offset); } makernote.Values = dictValues; listMakernotes.Add(makernote); i = i + 11; } File.WriteAllText(@"c:\temp\tags.txt", message); return(listMakernotes); }
public static void FillForm(string filenameImage, out UInt16 orientation) { orientation = 1; Byte[] bytesMakernote = null; try { using (ExifReader reader = new ExifReader(filenameImage)) { //Dateiname string filename; filename = Path.GetFileNameWithoutExtension(filenameImage); Form1.Textbox0 = filename; //Datum & Uhrzeit DateTime dateTime; if (reader.GetTagValue <DateTime>(ExifTags.DateTime, out dateTime)) { Form1.Datetime = dateTime; string date = dateTime.ToShortDateString(); string time = dateTime.ToShortTimeString(); Form1.Textbox1 = date; Form1.Textbox2 = time; } else { Form1.Textbox1 = ""; Form1.Textbox2 = ""; } //Breitengrad Double[] latitude; if (reader.GetTagValue <Double[]>(ExifTags.GPSLatitude, out latitude)) { string adjustedlatitude = ToolsFactory.DMStoDegrees(latitude).ToString(); int length = adjustedlatitude.Length; int index = adjustedlatitude.IndexOf(','); if (length - index > 6) { adjustedlatitude = adjustedlatitude.Substring(0, index + 6); } Form1.Textbox3 = adjustedlatitude; } else { Form1.Textbox3 = ""; } //Längengrad Double[] longitude; if (reader.GetTagValue <Double[]>(ExifTags.GPSLongitude, out longitude)) { string longitudeRef; if (reader.GetTagValue <string>(ExifTags.GPSLongitudeRef, out longitudeRef)) { } string adjustedlongitude; adjustedlongitude = ToolsFactory.DMStoDegrees(longitude).ToString(); int length = adjustedlongitude.Length; int index = adjustedlongitude.IndexOf(','); if (length - index > 6) { adjustedlongitude = adjustedlongitude.Substring(0, index + 6); } if (longitudeRef == "W") { adjustedlongitude = "-" + adjustedlongitude; } Form1.Textbox4 = adjustedlongitude; } else { Form1.Textbox4 = ""; } //Blendenzahl 0x9202 Double apertureValue; if (reader.GetTagValue <Double>(ExifTags.FNumber, out apertureValue)) { Form1.Textbox5 = "f/" + apertureValue.ToString(); } else { Form1.Textbox5 = ""; } //Belichtungszeit Double exposureTime; if (reader.GetTagValue <Double>(ExifTags.ExposureTime, out exposureTime)) { exposureTime = 1 / exposureTime; Form1.Textbox6 = "1/" + exposureTime.ToString() + " Sek"; } else { Form1.Textbox6 = ""; } //Filmempfindlichkeit (ISO) UInt16 isoSpeed; if (reader.GetTagValue <UInt16>(ExifTags.ISOSpeedRatings, out isoSpeed)) { Form1.Textbox7 = isoSpeed.ToString(); } else { Form1.Textbox7 = ""; } //Brennweite Double focalLength; if (reader.GetTagValue <Double>(ExifTags.FocalLength, out focalLength)) { Form1.Textbox8 = focalLength + " mm"; } else { Form1.Textbox8 = ""; } //Belichtungskorrektur Double exposureBiasValue; if (reader.GetTagValue <Double>(ExifTags.ExposureBiasValue, out exposureBiasValue)) { Form1.Textbox9 = exposureBiasValue.ToString("0.0") + " Schritt(e)"; } else { Form1.Textbox9 = ""; } //Messmethode UInt16 meteringMode; if (reader.GetTagValue <UInt16>(ExifTags.MeteringMode, out meteringMode)) { Form1.Textbox12 = GetNamesMessmethode(meteringMode); } else { Form1.Textbox12 = ""; } //Belichtungsprogramm UInt16 exposureProgram; if (reader.GetTagValue <UInt16>(ExifTags.ExposureProgram, out exposureProgram)) { Form1.Textbox13 = GetNamesBelichtungsprogramm(exposureProgram); } else { Form1.Textbox11 = ""; } //Objektiv string lensModel; if (reader.GetTagValue <string>(ExifTags.LensModel, out lensModel)) { Form1.Textbox20 = lensModel; } else { Form1.Textbox20 = ""; } // Orientierung reader.GetTagValue <UInt16>(ExifTags.Orientation, out orientation); //Makernote reader.GetTagValue <Byte[]>(ExifTags.MakerNote, out bytesMakernote); } } catch (Exception e) { MessageBox.Show("Fehler beim Einlesen der Exif-Tags." + Environment.NewLine + e); } try { List <Makernote> makernotes = MakernoteFactory.GetMakernotes(bytesMakernote); //------------------------------------------------------- //Canon CameraSettings Tags Makernote cameraSettings = makernotes[0]; //Aufnahmemodus string aufnamemodus = GetNamesAufnamemodus(cameraSettings.Values[11]); if (aufnamemodus != "") { Form1.Textbox13 = aufnamemodus; } if (aufnamemodus == "HDR") { MessageBox.Show("HDR"); } //AF-Betriebsart Form1.Textbox10 = GetNamesAFBetriebsart(Convert.ToInt32(cameraSettings.Values[7])); //AF-Bereich-Auswahlmodus Form1.Textbox11 = GetNamesAFBereichAuswahlmodus(Convert.ToInt32(cameraSettings.Values[32])); //Kontrast Form1.Textbox16_3 = cameraSettings.Values[13].Substring(3); //Farbsättigung Form1.Textbox16_2 = cameraSettings.Values[14].Substring(3); //Farbton Form1.Textbox16_4 = cameraSettings.Values[42].Substring(3); //------------------------------------------------------- //Canon ShotInfo Tags Makernote shotInfoTags = makernotes[2]; //auto ISO if (shotInfoTags.Values[1] != "0000") { Form1.Checkbox2 = true; } else { Form1.Checkbox2 = false; } //------------------------------------------------------- //CanonCameraInfo10D Makernote canonCameraInfo10D = makernotes[32]; //Bildstil int valInt = Convert.ToInt32(canonCameraInfo10D.Values[10]); Form1.Textbox15 = GetNamesBildstil(valInt); //Schärfe Form1.Textbox16_1 = canonCameraInfo10D.Values[2].Substring(3); } catch (Exception e) { MessageBox.Show("Fehler beim Einlesen der Exif-Tags." + Environment.NewLine + e); } }