Imagemagick-ben gondolkodom...azaz konzolos Linux-os kepmanipulaloval kell elernem...
a problema az lenne, hogy van egy tegyuk fel 1400x900-as JPG kepem, amit fel kellene nagyitani fullHD-be, DE UGY, hogy ha nem aranyos a nagyitas (azaz torzulna a kep), akkor fekete hatteret tegyen moge fullHD meretben. Ez egy otlet.
Tudtok erre valami megoldast?
Mukodnie kell barmilyen felbontasra, akar allo, akar fekvo a kep, a lenyeg az, hogy a vegleges output fullHD legyen. (sajna a kepmegjelnito csak ezt a felbontast tudja, es nem szeretnem, ha torzulna a kep)
kosz
- 627 megtekintés
Hozzászólások
convert input.png -resize 1920x1080 -background black -compose Copy -gravity center -extent 1920x1080 output.jpg
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
- A hozzászóláshoz be kell jelentkezni
koszonom, ranezek
gondolod, hogy ez allo kepekre is mukodik? (esetlegeses a rotation flag nincs benne a meta-ban)
- A hozzászóláshoz be kell jelentkezni
"By default, the width and height given in a geometry argument are maximum values unless a percentage is specified. That is, the image is expanded or contracted to fit the specified width and height value while maintaining the aspect ratio (the ratio of its height to its width) of the image."
Szóval igen, a resize mögé adott geometry azt adja meg, amibe bele kell férnie a nagyított képnek.
- A hozzászóláshoz be kell jelentkezni
Sajna allokepeknel nem szedi ki a rotation-t, azaz fekvonek konvertalja. Lehet, elotte el kellene forgatni?
- A hozzászóláshoz be kell jelentkezni
Nem vagyok egy jpeg szakértő, de a tapasztalatom a következő, tablet-tel készített fotóknál: a tablet valójában csak egyféle orientációjú fotót készít, és a forgatást valamiféle EXIF marker-ben tárolja. Amikor egy ilyen képet pl. gthumb-mal megnézek a PC-n, akkor a megjelenítő forgatja a képet minden alkalommal külön. Én úgy tárolom el hosszabb időre a jpeg fotókat, hogy először az alábbit lefuttatom rajtuk:
jpegtran -optimize -copy none
Ez egy csomó szemetet kidob a képből, magát a kép kódolását is optimalizálja (veszteségmentesen), viszont azok az EXIF marker-ek is mennek a levesbe, amelyek a megjelenítéskori forgatásért felelősek. Tehát az így lecsupaszított jpeg file-ban magát a képadatot el kell még forgatni.
Azt a lépést pedig kétféleképpen lehet elvégezni: gthumb-ban a szögletes zárójelekkel lehet veszteségmentesen forgatni, vagy parancssorból pl.
jpegtran -rot 270 -trim
(A széleken lévő pixeleket nem mindig lehet veszteségmentesen forgatni (a kép méretétől függ); ilyen esetben a gthumb is megkérdezi, hogy torzítani akarod-e a képet, vagy levágni a szélét.)
Azt sajnos nem tudom, hogy parancssorból hogyan lehet könnyen kideríteni, hogy forgatásra szükség van-e, de elvileg a jpegtopnm parancsnak, amit a másik hozzászólásomban ajánlottam, eleve figyelembe kellene vennie a megfelelő (forgató) EXIF markereket, és a pnm byte stream-be már a helyesen orientált pixel adatoknak kellene kerülniük.
- A hozzászóláshoz be kell jelentkezni
Azt sajnos nem tudom, hogy parancssorból hogyan lehet könnyen kideríteni, hogy forgatásra szükség van-e
A jpegexiforient megmondja, az exifautotran szkript pedig el is forgatja (a jpegtran segítségével).
- A hozzászóláshoz be kell jelentkezni
-auto-orient
most fejből nem tudom, milyen sorrendbe kéne berakni. de ha kitesztelted, örülnék egy visszajelzésnek :)
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
- A hozzászóláshoz be kell jelentkezni
OK, kiprobalom a sajat verzioju Imagemagick-en, de ugy latom a neten, sokaknak ez nem mukodik megfeleloen
- A hozzászóláshoz be kell jelentkezni
az extend ele rakva mukodik a forgatas uj tipusu JPG-knel
Annyi gond van vele, hogy a kep tetejet es aljat levagja, ha beteszem a kapcsolot. Ezt meg at kell nezni, miert.
- A hozzászóláshoz be kell jelentkezni
a resize ele kell tenni, akkor jo
- A hozzászóláshoz be kell jelentkezni
jpegtopnm -dct float original.jpg \
| pnmscale -xyfit 1920 1080 \
| pnmpad -width=1920 -height=1080 \
| pnmtojpeg -quality=80 -optimize -dct=float \
> new.jpg
Nem teszteltem, de ennek mennie kellene...
Szerk.: a megjelenítődtől függően a pnmpad parancsot akár ki is hagyhatod a pipeline-ból.
- A hozzászóláshoz be kell jelentkezni