The keyword you're looking for is image metadata, or EXIF data. You can read the raw data from the Image.PropertyItems property and parse it manually, or you can use an external library to do the work for you.
I'd recommend ExifLib - it's a very basic yet capable library for reading EXIF data. Here's an example:
// Instantiate the reader
using (ExifReader reader = new ExifReader(@"C:\temp\testImage.jpg"))
{
// Extract the tag data using the ExifTags enumeration
DateTime datePictureTaken;
if (reader.GetTagValue<DateTime>(ExifTags.DateTimeDigitized, out datePictureTaken))
{
// Do whatever is required with the extracted information
MessageBox.Show(this, string.Format("The picture was taken on {0}",
datePictureTaken), "Image information", MessageBoxButtons.OK);
}
}
Metadata Extractor dotnet
As mentioned by others, an alternative is using the dotnet version of metadata extractor.
Example to retrieve timestamp:
var directories = ImageMetadataReader.ReadMetadata(fileStream);
var directory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault();
return directory?.GetDateTime(ExifDirectoryBase.TagDateTimeOriginal);