[magick-users] Convert APS scans to 800x600
Ralph B
ralph.magick-users at spampot.com
Fri Oct 24 14:22:04 PDT 2008
Thanks to all those who sent me hints on how to do this. I ended up simply
center cropping a 4:3 (or 3:4) section out of my APS scans because I found
the fuzz/trim method left a bit too much of the white border behind. I
also used some of Fred Weinhaus' hints to find the aspect ratio of the
input image.
In case anyone is interested, I attach my working batch file. (Yes, I was
obliged to do this on Windows. Sigh.) It can cope with 3328x1872 (16:9)
APS scans and 1600x1200 (4:3) digital images in either landscape or
portrait format - reducing them to 800x600 or 450x600 respectively.
do_convert.bat
--------------
@echo off
if "%1"=="" goto usage
if "%2"=="" goto usage
set INFILE=%1
set OUTFILE=%2
set TEMPFILE=%INFILE%
if not exist %1 goto noinfile
convert %1 -format "%%w" info: > temp.txt
set /p WIDTH= < temp.txt
convert %1 -format "%%h" info: > temp.txt
set /p HEIGHT= < temp.txt
convert %1 -format "%%[fx:w/h]" info: > temp.txt
set /p ASPECT= < temp.txt
del temp.txt
echo Processing %INFILE% into %OUTFILE%
echo width is %WIDTH%
echo height is %HEIGHT%
echo aspect is %ASPECT%
if "%ASPECT%"=="0.5625" goto too_tall
if "%ASPECT%"=="1.77778" goto too_wide
if "%ASPECT%"=="0.75" goto portrait
if "%ASPECT%"=="1.33333" goto landscape
echo ERROR Inputfile %1 has unknown aspect ratio %ASPECT%. Giving up.
got end
:too_tall
echo Crop 3:4 middle ...
set TEMPFILE=%OUTFILE%-TEMP
convert %INFILE% -gravity center -crop 1692x2256+0+0 +repage %TEMPFILE%
if not exist %TEMPFILE% goto noouttempfile
goto portrait
:too_wide
echo Crop 4:3 middle ...
set TEMPFILE=%OUTFILE%-TEMP
convert %INFILE% -gravity center -crop 2256x1692+0+0 +repage %TEMPFILE%
if not exist %TEMPFILE% goto noouttempfile
goto landscape
:portrait
echo Resize portrait to 450x600 ...
convert %TEMPFILE% -resize x450 +repage %OUTFILE%
goto tidyup
:landscape
echo Resize landscape to 800x600 ...
convert %TEMPFILE% -resize x600 +repage %OUTFILE%
goto tidyup
:tidyup
if NOT "%TEMPFILE%"=="%INFILE%" del %TEMPFILE%
goto end
:noinfile
echo ERROR Inputfile "%INFILE%" does not exist
goto usage
:noouttempfile
echo ERROR Could not create temporary outputfile "%TEMPFILE%"
goto usage
:nooutfile
echo ERROR Could not create outputfile "%OUTFILE%"
goto usage
:usage
echo Usage: do_convert inputfile outputfile
:end
More information about the Magick-users
mailing list