getEXIF_Filter(EXIF修正版)
ATPhotoでEXIF情報表示正常化&簡素化で追加(/portal_skins/custom/getEXIF_Filter)
Size 12.2 kB - File type text/plainFile contents
# ATPhotoのEXIF情報をふぃるたりんぐ(取りあえずDSCのやつだけ)
#### Define Function #####
def get_src_item( src_dict, name ) :
return src_dict.get( name, 'None' )
def set_tgt_item( tgt_dict, name, val, chgdict='None' ) :
setval = val
if (chgdict != 'None') and (setval != 'None') :
setval = chgdict.get( val, val )
if setval != 'None' :
tgt_dict[name] = setval
#### Define Function #####
new_data = {}
#にほんごへんかんてーぶる(必殺ゴリ押しろじっくw)
### WhiteBalance Dict ###
WhiteBalance_TAGS={
#Common
'Auto' : '自動', #Nikon,Casio,FUJI,Canon
'Cloudy' : '曇り', #Nikon,FUJI,Canon
'Daylight' : '太陽光', #Nikon,FUJI,Casio
'Custom' : 'カスタム', #FUJI,Canon
'Tungsten' : '電球', #Casio,Canon
'Fluorescent' : '蛍光灯', #Nikon,Casio,Canon
'Shade' : '日陰', #Casio,Canon
'Incandescent': '電球', #Nikon,FUJI
#NIKON
'Preset' : 'プリセット',
'Speed Light' : 'ストロボ',
#Casio
'Manual' : 'マニュアル',
#FUJIFILM
'DaylightColor-Fluorescent' : '昼光色蛍光灯',
'DaywhiteColor-Fluorescent' : '昼白色蛍光灯',
'White-Fluorescent' : '白色蛍光灯',
#CANON
'Sunny' : '晴天',
'Flash' : 'ストロボ',
'B&H' : '白黒',
'K' : 'K',
'Fluoresent H' : '蛍光灯H',
'InWater' : '水中',
}
### Flash Dict ###
Flash_TAGS={
'No' : '発光禁止',
'Fired' : '発光',
'Fill Fired' : '発光',
'Off' : '非発光',
'Auto Off' : '自動非発光',
'Auto Fired' : '自動発光',
#上記以外はメドイのでやんない
}
### FlashSetting Dict for Nikon ###
# Asciiなのでやんない
### FlashMode Dict for CASIO,FUJI,CANON ###
FlashMode_MAKER_TAGS={
#COMMON
'Auto' : '自動',
'On' : 'ON',
'Off' : 'OFF',
'Red Eye Reduction' : '赤目軽減',
#CANON
'Flash Not Fired' : '非発光',
'Slow Synchro' : 'スローシンクロ',
'Auto + Red Eye Reduction' : '自動(赤目軽減)',
'On + Red Eye Reduction' : 'ON(赤目軽減)',
'external flash' : '外部フラッシュ'
}
### FlashIntensity Dict for CASIO ###
FlashIntensity_CASIO_TAGS={
'Weak' : '弱',
'Normal' : '普通',
'Strong' : '強'
}
### FlashDetails Dict for Canon ###
FlashDetails_CANON_TAGS={
'External E-TTL' : '外部E-TTL',
'Internal Flash' : '内蔵フラッシュ',
'FP Sync Used' : 'FPシンクロ使用',
'2nd("Rear")-Curtain Sync Used' : '2nd("Rear")-Curtain Sync Used',
'FP Sync Enabled' : 'FPシンクロ可'
}
### ExposureProgram Dict ###
ExposureProgram_TAGS={
'Unidentified' : '未定義',
'Manual' : 'マニュアル',
'Program Normal' : '通常プログラム',
'Aperture Priority' : '絞り優先',
'Shutter Priority' : 'シャッター速度優先',
'Program Creative' : '低速プログラム',
'Program Action' : '高速プログラム',
'Portrait Mode' : 'ポートレート',
'Landscape Mode' : '風景'
}
### ExposureProgram(MakerNote) Dict for All ###
ExposureProgram_MAKER_TAGS={
#COMMON
'Portrait' : 'ポートレート',
'Landscape' : '風景',
#CASIO(RecordingMode)
'Single Shutter' : 'シングル',
'Panorama' : 'パノラマ',
'Night Scene' : '夜景',
#FUJI(PictureMode)
'Auto' : '自動',
'Sports' : 'スポーツ',
'Night' : '夜景',
'Program AE' : 'プログラム',
'Aperture Priority AE' : '絞り優先',
'Shutter Priority AE' : 'シャッター速度優先',
'Manual Exposure' : 'マニュアル',
#CANON(ExposureMode)
'Easy Shooting' : 'イメージセレクト',
'Program' : 'プログラム',
'Tv-priority' : 'シャッター速度優先',
'Av-priority' : '絞り優先',
'Manual' : 'マニュアル',
'A-DEP' : '自動被写界深度'
}
### EasyShootingMode Dict for CANON ###
EasyShootingMode_CANON_TAGS={
'Full Auto' : 'フルオート',
'Manual' : 'マニュアル',
'Landscape' : '風景',
'Fast Shutter' : '高速シャッター',
'Slow Shutter' : 'スローシャッター',
'Night' : '夜景',
'B&W' : '白黒',
'Sepia' : 'セピア',
'Portrait' : 'ポートレート',
'Sports' : 'スポーツ',
'Macro/Close-Up' : 'マクロ',
'Pan Focus' : 'パンフォーカス',
'Prohibit Flash' : 'ストロボ発光禁止',
'Super Macro' : 'スーパーマクロ',
'Night Snap' : 'ナイトスナップ',
'Still Image' : 'スチルイメージ'
}
### MeteringMode Dict (Add CANON) ###
MeteringMode_TAGS={
'Unidentified' : '未定義',
'Average' : '平均測光',
'CenterWeightedAverage' : '中央重点',
'Spot' : 'スポット',
'MultiSpot' : '多点スポット',
'MultiSegment' : 'マルチセグメント',
'Partial' : '部分測光',
'Other' : 'その他',
#CANON
'Evaluative' : '評価測光',
'Partial' : '中央部部分測光',
'Center-weighted' : '中央部重点平均測光'
}
### FocusMode Dict for All ###
FocusMode_MAKER_TAGS={
#NIKON(Asciiなのでやんない)
#CASIO
'Macro' : 'マクロ',
'Auto Focus' : 'AF',
'Manual Focus' : 'MF',
'Infinity' : '無限遠',
#FUJI
'Auto' : 'AF',
'Manual' : 'MF',
#CANON
'One-Shot' : 'ONE SHOT AF',
'AI Servo' : 'AI SERVO AF',
'AI Focus' : 'AI FOCUS AF',
'MF' : 'MF',
'Single' : '単体AF',
'Continuous' : '連続AF'
}
### ContinuousDriveMode Dict for CANON ###
ContinuousDriveMode_CANON_TAGS={
'Single Or Timer' : '1コマ撮影',
'Continuous' : '連続撮影',
'Self Timer' : 'タイマ',
'SpeedPriContinuous' : '速度優先連続',
'SlowContinuous' : '低速連続',
'FastContinuous' : '高速連続'
}
# Initialize
make = get_src_item( data, 'Image Make' )
# 機種名(Image Model)
name = '機種名'
set_tgt_item( new_data, name, get_src_item( data, 'Image Model' ) )
# 撮影日付(DateTime)
name = '撮影日付'
#tmp = get_src_item( data, 'Image DateTime' )
tmp = get_src_item( data, 'EXIF DateTimeOriginal' )
if tmp == 'None' :
tmp = get_src_item( data, 'EXIF DateTime' )
set_tgt_item( new_data, name, tmp )
# シャッター速度(Tv)
name = 'シャッター速度'
tmp = get_src_item( data, 'EXIF ExposureTime' )
if tmp == 'None' :
tmp = get_src_item( data, 'EXIF ShutterSpeedValue' )
if (tmp == 'None') and (make == 'Canon') :
tmp = get_src_item( data, 'MakerNote ExposureTime' )
set_tgt_item( new_data, name, tmp )
# 絞り値(Av)
name = '絞り値'
tmp = get_src_item( data, 'EXIF FNumber' )
if tmp == 'None' :
tmp = get_src_item( data, 'EXIF ApertureValue' )
if (tmp == 'None') and (make == 'Canon') :
tmp = get_src_item( data, 'MakerNote ApertureValue' )
set_tgt_item( new_data, name, tmp )
# ISO(ISO)
name = 'ISO'
tmp = get_src_item( data, 'EXIF ISOSpeedRatings' )
if tmp == 'None' :
if make in ('NIKON', 'NIKON CORPORATION') :
tmp = get_src_item( data, 'MakerNote ISOSetting' )
if make == 'Canon':
tmp = get_src_item( data, 'MakerNote ISO' )
set_tgt_item( new_data, name, tmp )
# 焦点距離(FocalLength)
name = '焦点距離'
set_tgt_item( new_data, name, get_src_item( data, 'EXIF FocalLength' ) )
# 露出補正値(ExposureBiasValue)
name = '露出補正値'
set_tgt_item( new_data, name, get_src_item( data, 'EXIF ExposureBiasValue' ) )
#ホワイトバランス(WhiteBalance)
name = 'ホワイトバランス'
tmp = get_src_item( data, 'MakerNote WhiteBalance' )
if (make == 'Canon') and (tmp == 'K') :
tmp = "%s %s" % (get_src_item(data, 'MakerNote WBK'), tmp)
set_tgt_item( new_data, name, tmp, WhiteBalance_TAGS )
#フラッシュ情報(Flash)
name = 'フラッシュ'
flash = data.get('EXIF Flash', 'None')
set_tgt_item( new_data, name, flash, Flash_TAGS )
#機種別フラッシュ情報(MakerNote FlashInfo)
if flash in ('Fired','Fill Fired','Auto Fired' ) :
if make in ('NIKON', 'NIKON CORPORATION') :
name = '発光設定'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashSetting' ) )
if make == 'Casio' :
name = '発光モード'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashMode' ), FlashMode_MAKER_TAGS )
name = '発光強度'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashIntensity' ), FlashIntensity_CASIO_TAGS )
if make == 'FUJIFILM':
name = '発光モード'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashMode' ), FlashMode_MAKER_TAGS )
name = '発光補正値'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashStrength' ) )
if make == 'Canon':
name = '発光モード'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashMode' ), FlashMode_MAKER_TAGS )
name = 'フラッシュ詳細'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashDetails' ), FlashDetails_CANON_TAGS )
name = '発光補正値'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote FlashBias' ) )
# 露出制御モード(ExposureProgram)
name = '露出制御モード'
tmp = get_src_item( data, 'EXIF ExposureProgram' )
if tmp == 'None' :
if make == 'Casio' :
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote RecordingMode' ), ExposureProgram_MAKER_TAGS )
if make == 'FUJIFILM':
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote PictureMode' ), ExposureProgram_MAKER_TAGS )
if make == 'Canon':
tmp = get_src_item( data, 'MakerNote ExposureMode' )
if tmp == 'Easy Shooting' :
mode = get_src_item( data, 'MakerNote EasyShootingMode' )
tmp = "%s(%s)" % (ExposureProgram_MAKER_TAGS.get(tmp, tmp),
EasyShootingMode_CANON_TAGS.get(mode,mode) )
set_tgt_item( new_data, name, tmp )
else :
set_tgt_item( new_data, name, tmp, ExposureProgram_MAKER_TAGS )
else :
set_tgt_item( new_data, name, tmp, ExposureProgram_TAGS )
# 測光方式(MeteringMode)
name = '測光方式'
exiftmp = get_src_item( data, 'EXIF MeteringMode' )
if make == 'Canon':
tmp = get_src_item( data, 'MakerNote MeteringMode' )
if tmp != 'None' :
exiftmp = tmp
set_tgt_item( new_data, name, exiftmp, MeteringMode_TAGS )
# AFモード(AF Mode)
name = 'AFモード'
tmp = 'None'
if make in ('NIKON', 'NIKON CORPORATION') :
tmp = get_src_item( data, 'MakerNote FocusMode' )
if make == 'Casio' :
tmp = get_src_item( data, 'MakerNote FocusingMode' )
if make == 'FUJIFILM':
tmp = get_src_item( data, 'MakerNote FocusMode' )
if make == 'Canon':
tmp = get_src_item( data, 'MakerNote FocusMode' )
set_tgt_item( new_data, name, tmp, FocusMode_MAKER_TAGS )
# マクロモード(Macro Mode)
name = 'マクロモード'
tmp = 'None'
if make[:7] == 'OLYMPUS' :
tmp = get_src_item( data, 'MakerNote Macro' )
if make == 'Casio' :
tmp = "AFモード参照"
if make == 'FUJIFILM':
tmp = get_src_item( data, 'MakerNote Macro' )
if make == 'Canon':
tmp = get_src_item( data, 'MakerNote Macromode' )
set_tgt_item( new_data, name, tmp )
# ドライブモード(Drive Mode) Canon Only
name = 'ドライブモード'
set_tgt_item( new_data, name, get_src_item( data, 'MakerNote ContinuousDriveMode' ), ContinuousDriveMode_CANON_TAGS )
# 最小F値(MaxApertureValue)
name = '最小F値'
tmp = data.get('EXIF MaxApertureValue', 'None')
if tmp != 'None' :
new_data[name] = tmp
# レンズ(LensInfo)
name = 'レンズ'
tmp_s = data.get('MakerNote ShortFocalLengthOfLensInFocalUnits','None')
tmp_l = data.get('MakerNote LongFocalLengthOfLensInFocalUnits','None')
if (tmp_s != 'None') and (tmp_l != 'None') :
if tmp_s == tmp_l :
new_data[name] = "%s(単焦点)" % (tmp_s)
else :
tmp_s = tmp_s.replace('mm','')
new_data[name] = "%s-%s" % (tmp_s, tmp_l)
#new_data.keys.sort()
return new_data
Click here to get the file