This procedure reads the timestamp (and converts it to normal epoch-relative format) from a PNG file, if present. This functionality is also present in the tcllib png module. --AF
proc read_png_timestamp {file} { set fh [open $file r] fconfigure $fh -encoding binary -translation binary -eofchar {} if {[read $fh 8] != "\x89PNG\r\n\x1a\n"} { close $fh; return } while {[set r [read $fh 8]] != ""} { binary scan $r Ia4 len type set r [read $fh [expr {$len + 4}]] if {[string length $r] != ($len + 4)} { close $fh; return } if {$type == "tIME"} { binary scan $r Sccccc year month day hour minute second close $fh return [clock scan "$month/$day/$year $hour:$minute:$second"] } } close $fh return }