Rekon1602 Geschrieben 24. August 2010 Geschrieben 24. August 2010 Hey Ist es möglich das Aufnahmedatum eines Bildes zu ändern? Wenn ja wie??? Ich habs schon mit: FileInfo fi = new FileInfo( path2Picture); fi.LastWriteTime = DateTime.Now; versucht. Aber das is ja ned es Aufnahmedatum. Gibt es sowas auch mit dem Aufnahmedatum??? Zitieren
Guybrush Threepwood Geschrieben 24. August 2010 Geschrieben 24. August 2010 Was soll denn das Aufnahmedatum sein :confused: Zitieren
Thanks-and-Goodbye Geschrieben 24. August 2010 Geschrieben 24. August 2010 Schuss ins Blaue: EXIF-Daten? Zitieren
Rekon1602 Geschrieben 24. August 2010 Autor Geschrieben 24. August 2010 Das is das Datum, wann das foto gemacht wurde. Zitieren
Guybrush Threepwood Geschrieben 25. August 2010 Geschrieben 25. August 2010 (bearbeitet) Lol das ist mir schon klar aber wie siehst du diese Information an einer Datei? EDIT: Hab gerade gesehen das Windows das tatsächlich bei den Dateiinformationen anzeigt. War mir bisher noch nie aufgefallen. Das dürfte wohl etwas aufwändiger werden, aber anscheinend gibt es in der shell32.dll die GetDetailsOf mit der du an den Wert dran kommst. Ich denke mal das es da auch eine Funktion zum ändern gibt Bearbeitet 25. August 2010 von Guybrush Threepwood Zitieren
Gateway_man Geschrieben 25. August 2010 Geschrieben 25. August 2010 Hi, wie der Chief schon sagte steht die Info die du ändern willst in den EXIF-Daten deines jeweiligen Bildes. Du wirst im .NET keine Standartfunktion finden, mit der du diese Information ändern kannst. Selbst um an die Daten heranzukommen wirst du entweder auf bereits von der Community verfasste Funktionen zurückgreifen müssen oder dich selbst darum kümmern müssen. Hier ein beispiel um die EXIF Daten aus einem Bild auszulesen: klick mich. Laut Verfasser dieser C# Library kannst du damit folgenden Informationen aus einem Bild extrahieren: ///"Exif IFD" /// "Gps IFD" /// "New Subfile Type" /// "Subfile Type" /// "Image Width" /// "Image Height" /// "Bits Per Sample" /// "Compression" /// "Photometric Interp" /// "Thresh Holding" /// "Cell Width" /// "Cell Height" /// "Fill Order" /// "Document Name" /// "Image Description" /// "Equip Make" /// "Equip Model" /// "Strip Offsets" /// "Orientation" /// "Samples PerPixel" /// "Rows Per Strip" /// "Strip Bytes Count" /// "Min Sample Value" /// "Max Sample Value" /// "X Resolution" /// "Y Resolution" /// "Planar Config" /// "Page Name" /// "X Position" /// "Y Position" /// "Free Offset" /// "Free Byte Counts" /// "Gray Response Unit" /// "Gray Response Curve" /// "T4 Option" /// "T6 Option" /// "Resolution Unit" /// "Page Number" /// "Transfer Funcition" /// "Software Used" /// "Date Time" /// "Artist" /// "Host Computer" /// "Predictor" /// "White Point" /// "Primary Chromaticities" /// "ColorMap" /// "Halftone Hints" /// "Tile Width" /// "Tile Length" /// "Tile Offset" /// "Tile ByteCounts" /// "InkSet" /// "Ink Names" /// "Number Of Inks" /// "Dot Range" /// "Target Printer" /// "Extra Samples" /// "Sample Format" /// "S Min Sample Value" /// "S Max Sample Value" /// "Transfer Range" /// "JPEG Proc" /// "JPEG InterFormat" /// "JPEG InterLength" /// "JPEG RestartInterval" /// "JPEG LosslessPredictors" /// "JPEG PointTransforms" /// "JPEG QTables" /// "JPEG DCTables" /// "JPEG ACTables" /// "YCbCr Coefficients" /// "YCbCr Subsampling" /// "YCbCr Positioning" /// "REF Black White" /// "ICC Profile" /// "Gamma" /// "ICC Profile Descriptor" /// "SRGB RenderingIntent" /// "Image Title" /// "Copyright" /// "Resolution X Unit" /// "Resolution Y Unit" /// "Resolution X LengthUnit" /// "Resolution Y LengthUnit" /// "Print Flags" /// "Print Flags Version" /// "Print Flags Crop" /// "Print Flags Bleed Width" /// "Print Flags Bleed Width Scale" /// "Halftone LPI" /// "Halftone LPIUnit" /// "Halftone Degree" /// "Halftone Shape" /// "Halftone Misc" /// "Halftone Screen" /// "JPEG Quality" /// "Grid Size" /// "Thumbnail Format" /// "Thumbnail Width" /// "Thumbnail Height" /// "Thumbnail ColorDepth" /// "Thumbnail Planes" /// "Thumbnail RawBytes" /// "Thumbnail Size" /// "Thumbnail CompressedSize" /// "Color Transfer Function" /// "Thumbnail Data" /// "Thumbnail ImageWidth" /// "Thumbnail ImageHeight" /// "Thumbnail BitsPerSample" /// "Thumbnail Compression" /// "Thumbnail PhotometricInterp" /// "Thumbnail ImageDescription" /// "Thumbnail EquipMake" /// "Thumbnail EquipModel" /// "Thumbnail StripOffsets" /// "Thumbnail Orientation" /// "Thumbnail SamplesPerPixel" /// "Thumbnail RowsPerStrip" /// "Thumbnail StripBytesCount" /// "Thumbnail ResolutionX" /// "Thumbnail ResolutionY" /// "Thumbnail PlanarConfig" /// "Thumbnail ResolutionUnit" /// "Thumbnail TransferFunction" /// "Thumbnail SoftwareUsed" /// "Thumbnail DateTime" /// "Thumbnail Artist" /// "Thumbnail WhitePoint" /// "Thumbnail PrimaryChromaticities" /// "Thumbnail YCbCrCoefficients" /// "Thumbnail YCbCrSubsampling" /// "Thumbnail YCbCrPositioning" /// "Thumbnail RefBlackWhite" /// "Thumbnail CopyRight" /// "Luminance Table" /// "Chrominance Table" /// "Frame Delay" /// "Loop Count" /// "Pixel Unit" /// "Pixel PerUnit X" /// "Pixel PerUnit Y" /// "Palette Histogram" /// "Exposure Time" /// "F-Number" /// "Exposure Prog" /// "Spectral Sense" /// "ISO Speed" /// "OECF" /// "Ver" /// "DTOrig" /// "DTDigitized" /// "CompConfig" /// "CompBPP" /// "Shutter Speed" /// "Aperture" /// "Brightness" /// "Exposure Bias" /// "MaxAperture" /// "SubjectDist" /// "Metering Mode" /// "LightSource" /// "Flash" /// "FocalLength" /// "Maker Note" /// "User Comment" /// "DTSubsec" /// "DTOrigSS" /// "DTDigSS" /// "FPXVer" /// "ColorSpace" /// "PixXDim" /// "PixYDim" /// "RelatedWav" /// "Interop" /// "FlashEnergy" /// "SpatialFR" /// "FocalXRes" /// "FocalYRes" /// "FocalResUnit" /// "Subject Loc" /// "Exposure Index" /// "Sensing Method" /// "FileSource" /// "SceneType" Schau dir an wie er das macht und wo die Daten genau stehen, dann kannst du dir ja eine zusätzliche Funktion schreiben die die entsprechenden Daten ändert. lg Gateway Zitieren
Rekon1602 Geschrieben 25. August 2010 Autor Geschrieben 25. August 2010 Hey Danke für den Tip mit dem EXIF-Daten. Hab auch selber schon was gefunden und mein Problem is auch schon gelöst Folgender link hat mir sehr geholfen Link Zitieren
Rekon1602 Geschrieben 25. August 2010 Autor Geschrieben 25. August 2010 So, wenn die Property vorhanden ist, dann kann ich sie lesen und auch ändern. Nun wenn ich aber ein "normales" bild (z.B. von einer Webcam) habe, des nicht über ein Aufnahmedatum verfügt, funktioniert das nicht. Kennt zufällig jemand eine möglichkeit ein neues PropertyItem hinzuzufügen? Zitieren
athlet1 Geschrieben 31. August 2010 Geschrieben 31. August 2010 Du wirst im .NET keine Standartfunktion finden, mit der du diese Information ändern kannst. Selbst um an die Daten heranzukommen wirst du entweder auf bereits von der Community verfasste Funktionen zurückgreifen müssen oder dich selbst darum kümmern müssen. Das dürfte wohl etwas aufwändiger werden, aber anscheinend gibt es in der shell32.dll die GetDetailsOf mit der du an den Wert dran kommst. Nunja, dass ist so nicht ganz richtig. Das .Net Framework bietet eine Fülle an Möglichkeiten, so auch für diesen Fall: Image theImage = new Bitmap(@"c:\test.jpg"); // Get the PropertyItems property from image. PropertyItem[] propItems = theImage.PropertyItems; Die PropertyItems enthalten alles was man braucht. Eine Liste mit den möglichen Werten gibt es hier: Property Tags in Numerical Order (Windows) Und zum Setzen von nicht vorhandenen Properties gibt es folgendes: // Get a PropertyItem PropertyItem propItem = theImage.GetPropertyItem(20624); // update propItem.Value = irgendein Wert; theImage.SetPropertyItem(propItem); Hier muss man beachten, dass es keinen public Konstruktor für ein PropertyItem gibt. D.h. man nehme ein existierendes (weil vorher ausgelesen), ändere den Wert und schreibe es zurück. Etwaige Unklarheiten löst die MSDN auf:-) Gruß Zitieren
Rekon1602 Geschrieben 7. September 2010 Autor Geschrieben 7. September 2010 Aber wenn ich ein existierendes ändere, dann bekomm ich ja bei nem bild unter windows kein anzeigedatum, weil des ja ne feste nummer hat und wenn ich die nummer 2 (z.b.) ändere, dann seh ich des ned... Zitieren
athlet1 Geschrieben 7. September 2010 Geschrieben 7. September 2010 Nein. Es gibt zwei Möglichkeiten: 1. Du nimmst ein PropertyItem wie das Aufnahmedatum, änderst einfach den Wert (PropertyItem.Value) und schreibst es zurück 2. Du nimmst ein PropertyItem änderst den Wert (PropertyItem.Value) und die Id (PropertyItem.Id) und schreibst es zurück. Damit bleibt das urspüngliche erhalten und das neue wird hinzugefügt. Damit sollten alle deinen Anforderungen erfüllt sein. Zitieren
Rekon1602 Geschrieben 7. September 2010 Autor Geschrieben 7. September 2010 ah, ok. Werd ich mir heut abend mal anguggen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.