Skip to content

Instantly share code, notes, and snippets.

@hMatoba
Last active September 8, 2017 09:16
Show Gist options
  • Save hMatoba/1ed38e777f5be4d0461c555f74acade1 to your computer and use it in GitHub Desktop.
Save hMatoba/1ed38e777f5be4d0461c555f74acade1 to your computer and use it in GitHub Desktop.
与えられるデータをexifのフォーマットに沿った形にしないといけないので仕様の理解が必要。
さらに単体テストがむずい書き方をしてしまっているのでちょっとむずい。
公式ドキュメント(http://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf)に記載のある型の値の読み書きはできるようになっている。
しかし扱える型の拡張がどこかで行われているようで、「〇〇型を追加してくれ」と要望がたまにくる。
なのでMITの資料(https://www.media.mit.edu/pia/Research/deepview/exif.html)に沿って以下の型の読み書きができるように機能を拡張する。
・SignedByte
・SignedShort
・Double
書き
====
piexif/_dump.py
line 163 - line 271あたり
読み
====
piexif/_load.py
line 130 - line 221あたり
テスト -> "python setup.py test" -> VisualStudioがあれば、ソリューションを読み込むだけでテストエクスプローラから簡単にできる
tests/s_test.py
test_dump_and_load_specials
テストの問題
・機能をうまく切り分けていないので現状は統合テストしかない
・仕様書に載っていないようなレアな型なのでサンプルファイルがない
・結果、dumpとloadを一周させて元の値と一致するかをチェックするアレなテストになっている。その問題に関しては今回はパスで。
@hMatoba
Copy link
Author

hMatoba commented Sep 8, 2017

Floatに関して実装を忘れていたので、Floatを含めて四つの型対応を実装する

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment