新年明けましておめでとうございます。作ったよ。
- ginpei/exif-orientation: Get orientation (rotation and flipping) info from Exif-ed JPEG
- @ginpei/exif-orientation – npm
JPEGの回転とかの情報取れるやつ作った。(既存のものに対する利点はたぶん特にないです。) 初めてのscoped packageだ。https://t.co/6BEHl4g80W
— 高梨ギンペイ (@ginpei_jp) January 6, 2019
インストール。
$ npm install @ginpei/exif-orientation
利用例。
import * as exif from '@ginpei/exif-orientation'; const orientation = await exif.getOrientation(fileOrBuffer); console.log( `${orientation.rotation} degree,`, orientation.flipped ? 'flipped' : 'not flipped', );
上記のものではないが実行例。
$ node from-node.js sample-images/090-flipped-5.jpg Read image from: sample-images/090-flipped-5.jpg Rotation: 90 degree, Flipped: true.
検索するといかにもな名前のやつとかが複数出てくるんだけど、先行事例に対する利点は特にないです、たぶん。
作りたいので作った感じのやつです。ちゃんと動くと思うけど。
Scoped package
名前が取られてたけど作っちゃったし変えるのもなあと思って、自分の名前 “@ginpei” 付きの形での公開としました。
READMEにも書いたけど、TypeScriptの場合は --moduleResolution node
の設定が必要です。へえそうなんだ、知らなかった。
エラー例。
src/index.ts:1:23 - error TS2307: Cannot find module '@ginpei/exif-orientation'.
1 import * as exif from '@ginpei/exif-orientation';
~~~~~~~~~~~~~~~~~~~~~~~~~~
Found 1 error.
Exif仕様
こちらのPDFを大いに参考にしています。感謝感謝。
ところでExifて日本発祥の規格なんだね。
富士フイルムが開発し、当時の日本電子工業振興協会 (JEIDA)で規格化
画像の回転
とかそういうのは、一切しないです。調査するまで。
やるならCanvasが良いのかな。いやJPEGの画素情報の位置を回転的に動かす方が再圧縮しないから綺麗そう。
一時的ならCSSでやるのも手。よし transform: matrix()
使おうぜ!
JPEG以外
Exifを他の規格の画像にも使えるらしいんだけど、JPEGのみの対応です。見ないし。
おしまい
本年もよろしくお願い致します。