画像のサイズ情報(アスペクト比)の反映

Issue #514 closed
Ito Mitsuhiro repo owner created an issue

さて、Susie画像プラグインは仕様上画像の水平方向と垂直方向のピクセル密度を出力しています。出力方法は2つあり、1つは画像情報を取得するGetPictureInfo関数が出力するPictureInfo構造体の中にx_densityとy_densityの値があり、もう1つは画像そのものを取得するGetPicture関数またはGetPreview関数が出力するBITMAPINFO構造体の中のBITMAPINFOHEADER構造体の中にbiXPelsPerMeterとbiYPelsPerMeterの値があります。

そこで要望があるのですが、この水平方向と垂直方向のピクセル密度に基づいて画像を伸縮させて表示するオプションを実装してもらいたいのですが可能でしょうか。

そもそもPNGとTIFFとJPEGの3形式の画像ファイルには、表示させる際のアスペクト比の情報を設定することができます。このような画像はFFmpegを使えば簡単に作成できます。例えば、NTSC DVDを変換したMPEG動画(720x480、SAR 32:27または8:9)を、

ffmpeg -i "input.mpg" -vcodec png -f image2 "%08d.png"

としてPNG画像に変換すると、このPNG画像も720x480で、SAR 32:27または8:9のアスペクト比情報が埋め込まれたファイルとなります。この画像を現行バージョンのNeeViewで標準のWIC機能を使って表示すると、埋め込まれたアスペクト比は無視されて720x480をSAR 1:1のまま扱うので歪んだ表示となります。一方、FFmpeg付属のプレイヤーであるffplayを使うと ちゃんと埋め込まれたアスペクト比が適用されて伸縮処理が行われて正常に表示されます。

TORO氏のiftwic.spiなどの画像プラグインはこのようなアスペクト比付きの画像ファイルを扱う際、冒頭に申し上げた水平方向と垂直方向のピクセル密度をアスペクト比に基づいて計算してきちんと出力してくれます。そして、同じくTORO氏のファイル管理アプリであるPaper Plane xUIはこのピクセル密度に基づいて画像を伸縮させて表示するとのことです。

当方ではTORO氏のaxextend.spiからFFmpegを呼び出して動画ファイルをPNG画像に変換してiftwic.spiを使ってNeeViewで表示するという運用を考えています。しかし、そのままではiftwic.spiが出力するピクセル密度情報が反映されないため、先に申したとおりSARが1:1ではない動画は歪んで表示されてしまいます。このため、TORO氏にiftwic.spi側で伸縮処理できないかと相談いたしましたが、曰く「プラグイン側で伸縮処理を行うと呼び出すアプリ側でのエフェクト処理と重なって画質が悪く成る恐れがある。伸縮処理はアプリ側で行うべきである。」とのことでした。そこで、NeeView側でこの伸縮処理を行っていただければ大変ありがたいです。

Comments (2)

  1. Log in to comment