概要

Mirador 4で、初期読み込み時に、画像の回転や範囲指定を行う方法を紹介します。

背景

2025年3月現在、Mirador 4の開発が進められています。alpha版を以下で確認することができます。

https://github.com/ProjectMirador/mirador/releases

おそらくMirador 4からの機能かと思いますが、以下のFAQで初期設定の方法が記述されています。

https://github.com/ProjectMirador/mirador/wiki/Frequently-Asked-Questions#q-how-do-i-change-the-view-of-an-image-to-zoom-to-a-certain-area

具体的には、以下のように、initialViewerConfigを用いることで、初期設定ができました。

https://github.com/ProjectMirador/mirador/blob/main/__tests__/integration/mirador/mirador-configs/initial-viewer-config.js

e}x;piw}odi]r:nci}m,tdan,a'onitxyzndmwvth::oieisaiuoffr:sam97ymeaaIlb38o:sud[dVn42utlo{:ia,,0Itrein.d''wle0:{,heNe0trad0'tCv7hpoit,tsngot:fap/itss/gip:i:oe/inc/i{Piifofi.syihifatz.riohvooaanmrr:vdfaa'orrfrdtaamrtru-htsbimeosuutsmttesoou.mmo'lsr,o.goo/krmgag/nomioafdneisftess/tosb/joebcjte/c2t9/92894938/4c3a'n,vas/canvas-47174892',

応用

上記を応用して、以下のような初期設定を行ってみました。

<<!h/Dt<<hOmh/b/tCle<<<<<ho<<bmTammmtledds/olYldeeeiiayiciccc}c}c}Msd>Pa>ttttnd>vrmooo;o;o;icyEnaaalk>ipnnnhwxynxyniw}rr>geipoissBsei::s::sdi]aih=cnn>rdtrmttotidtt:nci}m,dpt"haaMe=tpxgtNNbbdan,aotmeammil"toxsbhhuuzooc'onirxyznr>lnreer=myMryptot:mmoxxomwvto::omi.>"s==a"ipitwlox:bboTTnisaitoafv>e""dsrerhTNeemoofr:saazzmneitvtota=ac=zoNurrCZZiaIltoo:ise=ihryd"do=oZum((eoogd[dViooftw"eelomonxoombssnooo{:iomm1eIeuwm-erorf'ymobepptmm=renCCsdrtpes"di9wmerlle..'"w:ee/t:(fo-Thufg5htr([[rxy{,hennIc-rcaeslr5.o=(s01tr1ttMd"o8tobeteof4ssp]]=++tC8eea:hn""llty"mr.p{pl))po0rrttf>oe"l>o0ll[,{bbsn,..h'ticrem,i[2oo:fxy.hpgo"oh=8t3]xx/i,,mts)nfr"2(])TT/gat:;tcep1'),ooi:xp/eocfo3,,ZZi(s/nno=sm.'ooi{b:ittn"ii0)oofo/i=ethtr,;mm.x/i"netia1..dTpfwtnto/d0whlou.i=tpnso0ie.Zrdd"ss:rr0diiollt#<:c-,tgto..h0//a'c1hhcmsi=0t/b;o0t..ttd0ifsn0/uwace0toof0/-in.v0lnli'2tdfui0etug;,2oto-c">stskhrte>.e/y,do-g;io.kwon.beyiotiaododgotcxu.tlpi.Tahe:ajosc,alpZn.p0-/o9jii;vro0pnsiem4/i.bep.crtcowohjeiote/e3pamtrii4ol/o-ig2/-cmcih9iss:oft/icsn/)iia?0f1iflf;i8i/eag7f1=ml.c/81iejcm7,lfs8acyt'2ncs=:;di8hR-f2ro01edib;1s-noet1ktr6'1-oi-,et:g96o3h9--0t19f0:29i,-1t4092=0;d-n0"d9o,>4d"5<-d>0/b40d4-"icb>vc4>ac9cba190b917009/7c0a/nmvaansi/fpe2s"t,",

これにより、わかりにくいですが、以下のように、180度回転しつつ、xywhにフォーカスした形で初期読み込みできました。

なお、「東京帝國大學本部構内及農學部建物鳥瞰圖(東京大学農学生命科学研究科・農学部)」をサンプルデータとして利用しています。

https://da.dl.itc.u-tokyo.ac.jp/portal/assets/187cc82d-11e6-9912-9dd4-b4cca9b10970

この設定を用いることで、IIIF Content State APIなどにも対応可能かと思います。

初期設定については、Universal ViewerやCuration Viewerではすでに実装されているものです。一方、私の知る限りにおいて、Mirador 3では初期設定が行いにくかったと思います。(例えば、回転させた状態での初期設定はできなかった?)

上記で紹介した方法を用いることで、Miradorの利便性が向上するかと思います。

フォーク

しかし、初期設定でrotationを指定すると、アニメーションが発生することがわかりました。この原因は、以下で示すように、viewport.setRotation(viewerConfig.rotation);となっていることでした。

https://github.com/ProjectMirador/mirador/commit/66ee878ac2cc1cc138e3c25a104d7c8f96f9fee5#diff-e1020130d5cb187d671ceb5d33d0af8b7a1f5ca462e641b456c165dc4c28a94c

そのため、immediately: trueを加えたものをフォークしたリポジトリで公開しています。

https://github.com/nakamura196/mirador/actions/runs/14064240031

上記を使用することで、初期ロード時でも、アニメーションが発生せず、指定した角度で回転および領域にフォーカスした形で、画像を表示することができるようになりました。

まとめ

Mirador 4の利用にあたり、参考になりましたら幸いです。これまで開発したプラグインについても、Mirador 4への対応を進める予定です。