Jelenleg így oldom meg, de a minőség az nem valami fényes.
convert ${files} -define jpeg:extent=400kb k_${files}
Mi lenne a jó megoldás ha a minőséget is szeretném meghagyni. A kikötés hogy a tárhelyre max 400 kb-os fájlokat lehet feltölteni.
De a képek jönnek mindenféle kamerákról, mindenféle méretben.
- 883 megtekintés
Hozzászólások
Nálam ugyan nincs konkréte méret limit, de én a felbontást szoktam "optimalizálni", ami a felhasználástól erősen függ, de pl:
convert -quality 95 -scale 1920x1920
Ééés, még ez előtt kigyomlálom az exif adatokat is, mert abban is lehet kisebb nézőkép, ami esetemben totál felesleges, és csak a méretet növeli.
perl exiftool esetén pl:
$exifTool->SetNewValue(PreviewImage => '');
$exifTool->SetNewValue('ThumbnailImage');
Én ezekkel kísérleteznék, amíg többségében elfogadható lesz a méret.
Ha nagyon hard limit van méretre, akkor ezek után csekkolnák méretet, és butítanám tovább - ha kell.
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
Ez a thumbnail törlés tetszik. Nem ismertem. Az exiftool-t most próbálgatom, de fenomenális cucc.
Úgy tűnik 3 lépéses megoldás lesz belőle.
1 - thumbnail törlés
2 - scale 1024
3 - 400kb
Köszi.
- A hozzászóláshoz be kell jelentkezni
A quality kapcsoló is erősen befolyásolja a méretet, azzal is érdemes kísérletezni.
A példámban szereplő 95 nagyon jó minőséget eredményez. Úgy 85-ig érdemes megnézni a méret/minőség balanszot.
--
zrubi.hu
- A hozzászóláshoz be kell jelentkezni
[Feliratkozás]
- A hozzászóláshoz be kell jelentkezni
A kovetkezo szkriptet hasznalom digitalis fenykepezogeprol szarmazo kepek tomeges lekicsinyitesere (weblapra, thumbnail celjabol), ebbol is inspiralodhatsz:
PICTURE_TOTAL_PIXELS="@19200" # 160x120
PICTURE_QUALITY="75"
TARGET_DIR="/path/to/target/dir"
for pic in "$@"; do
[ -f "$pic" ] || continue
target_pic="$TARGET_DIR/${pic##*/}"
orientation="$(jpegexiforient "$pic")"
case "$orientation" in
# taken from exifautotran
1) transform="";;
2) transform="-flip horizontal";;
3) transform="-rotate 180";;
4) transform="-flip vertical";;
5) transform="-transpose";;
6) transform="-rotate 90";;
7) transform="-transverse";;
8) transform="-rotate 270";;
*) transform="";;
esac
if [ -z "$transform" ]; then
echo "$pic"
else
echo "$pic (${transform:1})"
fi
jpegtran -copy none $transform "$pic" | convert -resize "$PICTURE_TOTAL_PIXELS" -quality "$PICTURE_QUALITY" - "$target_pic"
if [ -n "$transform" ]; then
jpegexiforient -1 "$target_pic"
fi
touch -r "$pic" "$target_pic"
done
Az exif infokat teljesen kiszedi a kepbol (thumbnail-nel ugysincs szukseg ra), es atmeretezes elott meg egy vesztesegmentes elforgatast is csinal (fenykepeknel igen hasznos).
- A hozzászóláshoz be kell jelentkezni