見出し画像

F700のプリンターで適切に印刷できるファイルを簡単に生成するバッチファイル

 F700については前回記事を参照のこと。

 感熱紙プリンターつきデジカメF700は、アスペクト比4:3の画像しか撮影・再生などができない仕様にも関わらず、印刷される画像のアスペクト比は16:10となっています。
 そのため、印刷された写真はアスペクト比が狂った、横に伸びた状態になってしまいます。

 PCなどで画像処理して、「16:10の写真を、4:3になるように縦に引き伸ばして、F700に転送した上で印刷する」ということを行えば、正しい比率での印刷は可能です。
 しかしF700は基本的に「F700で撮影した写真以外は受け付けない」という方針らしく、他のカメラの写真や画像ファイルなどはそのままではエラーになる・認識しない場合がほとんどです。

 縦横比の正しい印刷結果をしたい場合、以下のような煩雑な手順が必要です。

・印刷したい写真をJPEGファイルで用意する
・16:10にトリミングする
・4:3になるようにストレッチする
・2048×1536 (300万画素)にリサイズする(画像サイズが大きすぎる・小さすぎる場合もエラーが出ます)
・YYYYMMDD_hhmmdd.JPG の形式でファイル名をつける(これ以外のファイル名は認識しません)
・カードリーダーを用いて、カメラ用MicroSDカードのJPGフォルダーにファイルを転送する(F700をUSBで直結しても、MicroSDカードは書き込み禁止になっています)
・F700にMircroSDカードを挿入、起動して再生モードにして印刷

 以上の手順のうち、トリミング~ストレッチ~リサイズ~ファイル名設定までを自動で行えるWindows用バッチファイルを作りました。

バッチファイルの内容

 ImageMagickが必要なので、インストールしておいてください。

 以下の内容を、例えば f700res.bat といった名前のバッチファイルとして保存します。

@echo off
copy %1 tmp.jpg

rem ---- 縦長画像なら回転して横長にする
for /f %%i in ('magick identify -format %%w tmp.jpg') do set width=%%i
for /f %%i in ('magick identify -format %%h tmp.jpg') do set height=%%i
if %width% gtr %height% goto jumprotate
magick convert %1 -rotate +270 tmp.jpg
set th=%height%
set height=%width%
set width=%th%
:jumprotate

rem ---- 16:10よりも上下が長いなら上下をトリミング、左右が長いなら左右をトリミング
set /a tw=%width%/16
set /a th=%height%/10
if %tw% == %th% goto doresize
if %tw% gtr %th% goto cutwidth

:cutheight
set /a newheight=%width%*10/16
magick convert tmp.jpg -gravity center -crop %width%x%newheight%+0+0 tmp.jpg
goto doresize

:cutwidth
set /a newwidth=%height%*16/10
magick convert tmp.jpg -gravity center -crop %newwidth%x%height%+0+0 tmp.jpg

:doresize
rem ---- 日付取得してファイル名設定
set d=%date%
set tt=%time%
set t=%time: =0%
set outfile=%d:~0,4%%d:~5,2%%d:~8,2%_%t:~0,2%%t:~3,2%%t:~6,2%.JPG

rem ---- 無意味に高画質でも仕方ないので3MPにリサイズ
magick convert tmp.jpg -scale 2048x1536! %outfile%
del tmp.jpg

使い方

画像1

 変換したい画像を、バッチファイルにドラッグアンドドロップするだけ。(コマンドプロンプトから、変換したいファイルを引数として与えて呼び出すこともできます)
 元画像の縦横比やサイズは問いません。
 縦画像なら横に回転され、適切にトリミング・ストレッチ・リサイズされた画像が、YYYYMMDD_hhmmdd.JPGのファイル名で生成されます。
 変換処理を行った日時でファイル名がつきます。

 この後は、MicroSDカードにこのファイルをコピーして、F700にMicroSDカードを移し、再生モードから印刷するだけです。

いいなと思ったら応援しよう!