mode 1 menu "Add-On Scripts" name "Picture Details" label "Picture Details" ######################################################################## # Details2.CSM v2.5 # # # # Display picture information for marked pictures. # # # # enhanced by Ralf Brown, 8nov98 # # last change: 13nov99 # # # # Target Devices: Kodak DC220/260/265/290, Minolta EX 1500 # # # # Because of the large amount of information displayed, some # # explanation is needed which won't fit on the screen. # # Line 1: filename, protection, white balance, AGC # # filename: the actual name of the image file # # protection: if an exclamation mark is shown, the image is # # protected from in-camera deletion (290 and 1500) # # white balance: auto, day (daylight), flr (flourescent), # # tung (tungsten), off # # AGC: on the Kodaks, 1000 is default; higher values indicate # # increased sensitivity (normally used on flash pics) # # Line 2: image size, compresssion, orientation, flash # # orientation: if "-90" or "+90" displayed, portrait mode pic # # flash: if "Flash" appears, this picture was taken with flash # # Line 3: exposure time, aperture, exposure comp., EV # # exposure time in seconds (shown as 1/X for < 0.1s) # # aperture: the f-stop used # # exposure comp: shows --, -, +, or ++ for varying amounts of # # exposure compensation applied # # EV: the exposure value measured by the camera (the Kodaks # # never report less than 4.0) # # Line 4: zoom, sharpening # # zoom: shown as zoom factor and as 35mm-equivalent focal length # # sharpening: sharpening value (0 except on DC290) # # for DC290, 0-33 = Soft, 34-66 = Standard, # # 67-100 = Sharp, <0 = None, default is 50) # # Line 5: focus distance, focus mode, exposure warning # # focus distance in meters (9999.99 shown if undeterminable, # # 655.35 for infinity -- note that DC260/265 do not # # correctly report distance when using manual focus) # # focus method: Multi-Spot, Single-Spot, or Manual # # exposure warning: if the camera reports that the image is # # under- or over-exposed (the DC260 never seems to # # do so), a "<<" or ">>" will appear # # # ######################################################################## declare s: path declare n: fname declare u: length declare b: status declare u: uHeight, uWidth, uFocLen, uEV, uComp, uWhite declare u: focal_len, uptd declare i: iXCmp, shpn declare s: sFocus, sFocMeth, sComp, sXCmp, sWhite, sFlash, sOrient, sExp declare s: sProductName declare u: uVal, uHigh, uFHigh, uLow declare u: uTens, uOnes, uETens, uEOnes, uFTens, uFOnes declare u: cycle declare u: filecount focal_len = 38 GetProductInfo ("ptid", sProductName) if sProductName == "KODAK DIGITAL SCIENCE DC220" focal_len = 29 end GetMarkedImageCount (filecount) if filecount == 0 Alert ("No marked images.") goto DONE end cycle = 0 LOOP: GetMarkedImage (cycle, path, fname) GetFileInfo (cycle, path, fname, length, status) GetFileTag (path, fname, "aagc", uVal) status = 0 status = GetFileTag(path, fname, "wmod", uWhite) sWhite = "wb?" if status == 0 if uWhite == 1 sWhite = "auto" end if uWhite == 2 sWhite = "wb2" end if uWhite == 3 sWhite = "day" end if uWhite == 4 sWhite = "wb4" end if uWhite == 5 sWhite = "wb5" end if uWhite == 6 sWhite = "flr" end if uWhite == 7 sWhite = "wb7" end if uWhite == 8 sWhite = "wb8" end if uWhite == 9 sWhite = "tung" end if uWhite == 10 sWhite = "wb10" end if uWhite == 11 sWhite = "off" end end status = 0 status = GetFileTag(path,fname,"uptd", uptd) if status != 0 # not supported, so indicate not protected uptd = 0 end if uptd == 0 DisplayLine (fname, " ",sWhite,"/",uVal) end if uptd != 0 DisplayLine (fname, " ! ",sWhite,"/",uVal) end GetFileTag (path, fname, "imht", uHeight) GetFileTag (path, fname, "imwd", uWidth) GetFileTag (path, fname, "cmpn", uComp) sComp = "" if uComp == 1 sComp = "S-Econ" end if uComp == 2 sComp = "Good" end if uComp == 3 sComp = "Better" end if uComp == 4 sComp = "Best" end if uComp == 5 sComp = "Super" end if uComp == 6 sComp = "Comp6" end if uComp == 7 sComp = "Uncmp" end GetFileTag (path, fname, "ortn", uVal) sOrient = "" if uVal == 2 sOrient = "-90" end if uVal == 3 sOrient = "+90" end GetFileTag (path, fname, "imfg", uVal) sFlash = "" sExp = "" if uVal & 4 sFlash = "Flash" end if uVal & 0x40 # indicate under-exposure (never set by DC260??) sExp = "<<" end if uVal & 0x20 # indicate over-exposure (never set by DC260??) sExp = ">>" end DisplayLine(uWidth, "x", uHeight, " ", sComp, " ", sOrient, " ", sFlash) GetFileTag (path, fname, "xcmp", iXCmp) sXCmp = "" if iXCmp > 0 sXCmp = "+" if iXCmp > 100 sXCmp = "++" end end if iXCmp < 0 sXCmp = "-" if iXCmp < -100 sXCmp = "--" end end GetFileTag (path, fname, "fnum", uVal) uFHigh = uVal / 100 uLow = uVal - 100 * uFHigh uFTens = uLow / 10 uFOnes = uLow - 10 * uFTens GetFileTag (path, fname, "eval", uEV) uHigh = uEV / 100 uLow = uEV - 100 * uHigh uETens = uLow / 10 uEOnes = uLow - 10 * uETens uEV = uHigh GetFileTag (path, fname, "shut", uVal) if uVal >= 100000 # round from microseconds to nearest 1/1000 seconds uVal = uVal + 500 uVal = uVal / 1000 uHigh = uVal / 1000 uLow = uVal - 1000 * uHigh uTens = uLow / 100 uOnes = uLow / 10 - 10 * uTens uLow = uLow - 100 * uTens - 10 * uOnes DisplayLine ("Exp: ", uHigh, ".", uTens, uOnes, uLow, "s f", uFHigh, ".", uFTens, uFOnes, " ", sXCmp, "EV", uEV, ".", uETens, uEOnes) goto ShowedShutter end if uVal if uVal < 100000 uVal = 10000000 / uVal + 5 uVal = uVal / 10 DisplayLine ("Exp: 1/", uVal, "s f", uFHigh, ".", uFTens, uFOnes, " ", sXCmp, "EV", uEV, ".", uETens, uEOnes) end end ShowedShutter: status = 0 status = GetFileTag (path, fname, "shpn", shpn) if status != 0 shpn = 0 end GetFileTag (path, fname, "zpos", uVal) uHigh = uVal / 100 uLow = uVal - 100 * uHigh uTens = uLow / 10 uOnes = uLow - 10 * uTens uFocLen = focal_len * uVal + 75 uFocLen = uFocLen / 100 DisplayLine (uHigh, ".", uTens, uOnes, "x =", uFocLen, "mm, Shrp=",shpn) GetFileTag (path, fname, "fdst", uVal) if uVal > 999999 uVal = 999999 end uHigh = uVal / 100 uLow = uVal - 100 * uHigh uTens = uLow / 10 uOnes = uLow - 10 * uTens GetFileTag (path, fname, "fmod", uVal) sFocus = "" sFocMeth = "" if uVal == 1 GetFileTag (path, fname, "fmtd", uVal) sFocus = "Auto" if uVal == 1 sFocus = "MultiSpot" end if uVal == 2 sFocus = "SnglSpot" end end if uVal == 3 sFocus = "Manual" end DisplayLine ("Dist: ", uHigh, ".", uTens, uOnes, "m ", sFocus, " ", sExp) Wait(4000) cycle = cycle + 1 if cycle < filecount DisplayClear() goto LOOP end Wait(16000) exitscript DONE: end