Onhan noita kuvan koon muuttamisen työkaluja vaikka kuinka. Mutta halusin, että Win työpöydälläni on ikoni, jolle voi raahata Explorerista kuvan tai hakemiston, ja tuloksena on JPG webbikuvia (suurin sivu max 1024 pix). Nopeasti ja heleposti. 1. Asensin imagemagic:n http://www.imagemagick.org/download/binaries/ImageMagick-6.8.9-7-Q16-x64-dll.exe (64 bit versio, joka käsittelee kuvat 16 bittiä/kanava. 32 bit versiokin tuolta löytyy.) 2. Tein työpöydälle tiedoston resize1024.bat, jonka sisältö on: @echo off REM REM resize a file or files in a directory to max 1024 pixels REM rem Loops through arguments. If a file converts it to a jpg. If a directory rem converts files in that directory to jpgs. Assumes a program "convert". set count=0 for %%a in (%*) do ( if exist %%a ( if exist %%a\ ( rem Directory, loop through contents for %%f in (%%a\*) do ( convert "%%f" -resize 1024x1024 "%%~a\%%~nf.jpg" set /a count+=1 ) ) else ( rem File, just convert convert "%%~a" -resize 1024x1024 "%%~na.jpg" set /a count+=1 ) ) else ( echo Skipping non-existent %%~a ) ) echo Converted %count% files pause ---- Jos haluaa jonkin muun kokoisia kuvia niin vaihtaa (2 kpl) -resize 1024x1024 joksikin muuksi. Huom. 1024 x 1024 ei toimi! Ks. imagemagic -dokut. Jos originaali on JPG niin skripti tallentaa pienennetyn kuvan alkuperäisen päälle!!!
Vs: Helppo ja nopea resize Pieni ongelma on siinä, että moniin palveluihin on eri kokoiset korkeus ja leveysrajoitukset. Eli scriptiä pitääkin muokata ehdolliseksi siten, että sille voisi antaa korkeuden ja leveyden ylärajan riippuen siitä onko kyseessä pysty-vai vaakakuva. Eli kumpikaan yläraja ei saisi ylittyä, mutta suurempi vaihtoehto toteutuisi. En ole tuota softaa tutkaillut enkä nyt kerkeä miettiä miten asian voisi tällä hoitaa. Mutta pienillä kuvamäärillä voi tietty käyttää eri hakemistoa vaaka- ja pystykuville. Ja eri skriptiä
Vs: Helppo ja nopea resize Jos ymmärsin mitä tarkoitat niin tuo toimii juuri niin. Kuvaa pienennetään niin, että pidempi sivu on 1024 pikseliä, oli se sitten vaaka- tai pystysivu. Sivusuhdetta ei muuteta, joten lyhyempi sivu määräytyy sen mukaisesti. Tavoitteeni oli ettei mitään parametreja tarvitse antaa. Lisään tuohon vielä kevyen terävöityksen ja muutaman metatiedon lisäämisen, mm. (c) ym. Mutta skriptiä saa ihan vapaasti puukottaa mieleisekseen. Esim. jos piennetyn kuvan nimeää eri tavalla niin alkup. JPG:kin säilyy. Next version.
Vs: Helppo ja nopea resize Next version, vaatii myös exiftool -asennuksen ja template/kuvatiedoston luomisen (1x1 pikselin JPG riittää). Lisää kuvaan myös metatietoja. Koodi on itsensädokumentoiva ;P ---- @echo off REM REM Quick resize of image file(s). Save this file on your Windows desktop REM and drag & drop file or folders on the icon. REM You need to install imagemagic and exiftool first. REM REM ORF files will produce a WARNING, just ignore it. REM REM set DEBUG=TRUE REM --- exiftool folder --- set EXIFTDIR=c:\utl\exiftool\ set PATH=%PATH%;%EXIFTDIR% REM --- target pixel resolution --- REM set MAX=800 set MAX=1024 REM set MAX=2048 set TAG=-wh%MAX% @echo ------------------------------ @echo --- Resizing to max %MAX% pixs @echo ------------------------------ set name=Etu Sukunimi set copyright=(c) <EMAIL email="Etu.Sukunimi@domain.fi"]Etu.Sukunimi@domain.fi</EMAIL> set title=Photographer set usageterms=All rights reserved set country=Finland set region=Kameralaukku set city=EiTietoa set zip=715517 set street=Katu set email=<EMAIL email="Etu.Sukunimi@domain.fi"]Etu.Sukunimi@domain.fi</EMAIL> set phone=+358-00-12345678 copy %EXIFTDIR%1x1pix.jpg %EXIFTDIR%IPTC-template.jpg >t REM Loops through arguments. If a file converts it to a jpg. If a directory REM converts files in that directory to jpgs. Assumes a program "convert". set count=0 for %%a in (%*) do ( if exist %%a ( if exist %%a\ ( rem Directory, loop through contents for %%f in (%%a\*) do ( call :setmetadata REM for debugging ---------------------------------------------------------------------------------- if defined DEBUG ( echo ------------------------------------------------------------------------- exiftool.exe %EXIFTDIR%IPTC-template.jpg echo ------------------------------------------------------------------------- ) REM for debugging ---------------------------------------------------------------------------------- exiftool.exe -quiet -TagsFromFile "%%~f" %EXIFTDIR%IPTC-template.jpg convert "%%f" -resize %MAX%x%MAX% -unsharp 1.5x1+0.7+0.02 "%%~a\%%~nf%TAG%.jpg" exiftool.exe -quiet -TagsFromFile %EXIFTDIR%IPTC-template.jpg -overwrite_original -P "%%~a\%%~nf%TAG%.jpg" set /a count+=1 @echo %%~nf%TAG%.jpg @echo --- ) ) else ( echo --- Just convert ONE file --- call :setmetadata REM for debugging ---------------------------------------------------------------------------------- if defined DEBUG ( echo ------------------------------------------------------------------------- exiftool.exe %EXIFTDIR%IPTC-template.jpg echo ------------------------------------------------------------------------- ) REM for debugging ---------------------------------------------------------------------------------- exiftool.exe -quiet -TagsFromFile "%%~a" %EXIFTDIR%IPTC-template.jpg convert "%%~a" -resize %MAX%x%MAX% -unsharp 1.5x1+0.7+0.02 "%%~na%TAG%.jpg" exiftool.exe -quiet -TagsFromFile %EXIFTDIR%IPTC-template.jpg -overwrite_original -P "%%~na%TAG%.jpg" set /a count+=1 @echo --- %%~na%TAG%.jpg SINGLE ) ) else ( echo --- Skipping non-existent %%~a ) ) echo Converted %count% files echo --- DONE del t pause exit REM SUBROUTINE --------------------------- :setmetadata exiftool.exe -quiet -all= %EXIFTDIR%IPTC-template.jpg exiftool.exe -Artist="%name%" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -Copyright="%copyright%" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -CopyrightNotice="%copyright%" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -CopyrightFlag=True -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -UsageTerms="%usageterms%" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -Creator="%name%" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -ImageDescription="X" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -MakerNotes="X" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -Title="X" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exiftool.exe -Subject="X" -overwrite_original -P -quiet %EXIFTDIR%IPTC-template.jpg exit /b
Vs: Helppo ja nopea resize Et ihan ymmärtänyt mitä tarkoitin. Joten muokkasin hieman tuota ekaa versiota siten, että nuo "1024*1024" korvasin "1920*1080" arvoilla esim. FullHD:n mukaisiksi. Ja laitoin yhden echon lisää, jotta ikkunassa näkyisi, että jotain tapahtuu. Tässä pieni testiloki: [QUOTE> [/QUOTE] Kunkin rivin loppuun olen lisännyt manuaalisesti mistä mihin muunnos tapahtui Next-versiossa saman voi tehdä korvaamalla muuttujan MAX kahdella uudella eli VMAX (vaakamaksimi) ja HMAX (pystymaksimi). Lisäksi huomasin sellaisen pienen ongelman W7:ssä, että set-komennossa ei saa olla välilyöntejä, esim. C:\Program Files\. W8:lla en ole voinut mökillä kokeilla. Ja jotain ongelmaa oli myös metadatan päivityksessä, copyright oli ainoa joka päivittyi. Pitäiskö tuo 1x1pix.jpg tehdä tyhjällä metadatalla?
Vs: Helppo ja nopea resize Kun windows:ssa sallittiin välilyönnit poluissa, se aiheutti "ylimääräistä" päänvaivaa skripteissä. set X="C:\Program Files" toimii. Minä olenkin asentanut exiftool:n ym apuohjelmia c:\utl -polkuun... Tuohon convert -komentoon voi lisätä -verbose niin saa yksityiskohtaista tietoa. Tässä käyttämäni 1x1pix.jpg
Vs: Helppo ja nopea resize Tuo 1x1pix.jpg on samanlainen kuin mulla. Mutta kun mä nykyisin asetan metadatan LR:n importissa, niin sitä ei tarvi enää päivittää tässä vaiheessa.
Vs: Helppo ja nopea resize Tämä mun käyttö on kuville, joita ei viedäkään LR:iin. Otetaan kuva, pienennetään, spostin liitteeksi tai nettiin ja delete...