Version 12 of Reading JPEG comments

Updated 2005-11-23 01:14:09

For a possibly more up to date version of this code see the tcllib jpeg module


 proc read_jpg_comments {file} {
 #: returns a list containing all the comments found in ''file''
    set fh [open $file r]
    fconfigure $fh -encoding binary -translation binary -eofchar {}
    if {[read $fh 2] != "\xFF\xD8"} { close $fh; return }
    set comments {}

    while {[read $fh 1] == "\xFF"} {
        binary scan [read $fh 3] aS type len
        set pos [tell $fh]
        if {$type == "\xFE"} {
            lappend comments [read $fh [expr $len - 2]]
        }
        seek $fh [expr {$pos + $len - 2}] start
    }
    return $comments
 }

 # Test:
  catch { console show }
  puts [ read_jpg_comments "pic.jpg" ]

--AF 19-12-03

TV Nice, works. Would you happen to know how to read other information, for instance I can use a camera which nicely records picture data and time and some cam settings, which explorer nicely pops up. It would be nice to be able to read that, too.

AF For that I think you need to see EXIF


See also jpeg, Writing JPEG comments, Reading JPEG image dimensions


Category Graphics - Category File