mirror of
https://github.com/9001/copyparty.git
synced 2026-06-19 04:32:26 -06:00
rawpy is still supported but will not be bundled by default due to security concerns dcraw_emu reads more formats than rawpy + gives better quality (we told rawpy to use embedded thumbs), so also much slower dcraw_emu must be combined with libvips or pillow (equivalent) other alternatives considered: libvips + a full imagemagick does a different subset of formats, less than dcraw_emu, yet is 3x slower and eats ram magick wins wrt formats but is even slower (4x of dcraw_emu)
65 lines
3.9 KiB
Plaintext
65 lines
3.9 KiB
Plaintext
FS=/home/ed/Pictures/rawsamples-ch # https://rawsamples.ch/index.php/en/ (the 7z)
|
|
|
|
find $FS -type f | sed -r 's/(.*)\.(.*)/\2 \1.\2/' | sort | tr '[:upper:]' '[:lower:]' | uniq -cw16 | sort -n | awk '{printf"%s ",$2}'
|
|
FMTS="dcr erf mdc mef ppm sr2 srf mos pdf 3fr tiff nrw kdc tif srw x3f mrw pef dng raw raf arw crw orf nef cr2 rw2 jpg"
|
|
|
|
for w in $FMTS ; do grep -E "th-r-.*\b$w\b" ~/dev/copyparty/copyparty/__main__.py || echo "$w"; done
|
|
missing rw2;
|
|
FMTS_CPP=3fr,arw,cr2,cr3,crw,dcr,dng,erf,k25,kdc,mdc,mef,mos,mrw,nef,nrw,orf,pef,raf,raw,sr2,srf,srw,x3f,rw2
|
|
|
|
rm -rf $FS/.hist
|
|
time podman run --rm -it -v $FS:/w copyparty/iv -v /w::r --exit=thgen --th-pregen=j
|
|
find $FS/.hist/th/ -iname '*.jpg' | wc -l
|
|
|
|
371 0m5.200s 3s
|
|
458 0m5.512s 3s with --th-r-raw=$FMTS_CPP
|
|
443 0m3.967s 2s with --th-r-raw=$FMTS_CPP --th-dec=raw
|
|
|
|
t0=$(date +%s); for f in $FMTS ; do rm -rf $FS/.hist
|
|
podman run --rm -it -v $FS:/w copyparty/iv -v /w::r --exit=thgen --th-pregen=j --th-dec=raw --th-r-raw=$f -q >/dev/null 2>&1
|
|
printf '%s ' $(find $FS/.hist/th/ -size +0 -iname '*.jpg' | wc -l)
|
|
done;t=$(date +%s);echo $((t-t0))
|
|
|
|
95f 55s --th-dec=ff
|
|
397f 51s --th-dec=raw (rawpy)
|
|
153f 51s --th-dec=vips (no-magick)
|
|
|
|
# swithc to persistent for messingaround
|
|
podman run --rm -it -v $FS:/w --entrypoint /bin/ash copyparty/iv
|
|
apk update
|
|
apk upgrade -lai
|
|
|
|
t0=$(date +%s); for f in $FMTS ; do rm -rf $FS/.hist
|
|
podman exec -it d171470581ab python3 -m copyparty -v /w::r --exit=thgen --th-pregen=j --th-dec=vips --th-r-vips=$f -q >/dev/null 2>&1
|
|
printf '%s ' $(find $FS/.hist/th/ -size +0 -iname '*.jpg' | wc -l)
|
|
done;t=$(date +%s);echo $((t-t0))
|
|
# equivalent results
|
|
|
|
apk add imagemagick; t0=$(date +%s); rm -rf /w/.hist/ ; for f in $FMTS ; do rm -f /*.jpg; n=0; find /w -type f -iname "*.$f" | while IFS= read -r x; do magick "$x" -scale 320x /$n.jpg >/dev/null 2>&1 ; [ -s /$n.jpg ] || rm -f /$n.jpg; n=$((n+1)); done; echo -n "$(ls -1 / | grep -F .jpg | wc -l) "; done; t=$(date +%s); echo $((t-t0))
|
|
|
|
apk add libraw-tools; t0=$(date +%s); rm -rf /w/.hist/ ; for f in $FMTS ; do rm -f /*.jpg; n=0; find /w -type f -iname "*.$f" | while IFS= read -r x; do [ $(dcraw_emu -h -o 1 -s 0 -Z - "$x" 2>/dev/null | wc -c) -gt 1024 ] && touch /$n.jpg; n=$((n+1)); done; echo -n "$(ls -1 / | grep -F .jpg | wc -l) "; done; t=$(date +%s); echo $((t-t0))
|
|
|
|
dcr erf mdc mef ppm sr2 srf mos pdf 3fr tiff nrw kdc tif srw x3f mrw pef dng raw raf arw crw orf nef cr2 rw2 jpg
|
|
d e m m p s s m p 3 t n k t s x m p d r r a c o n c r j
|
|
c r d e p r r o d f i r d i r 3 r e n a a r r r e r w p
|
|
r f c f m 2 f s f r f w c f w f w f g w f w w f f 2 2 g
|
|
-----------------------------------------------------------------
|
|
0 0 0 0 1 1 0 0 0 0 3 0 2 6 0 0 0 6 17 0 0 0 0 0 54 0 0 5 = 95, 55s --th-dec=ff
|
|
1 1 0 1 0 1 1 2 0 3 0 4 5 6 7 0 8 17 16 2 30 31 17 45 56 56 87 0 =397, 51s --th-dec=raw ## rawpy
|
|
1 1 1 1 0 1 1 2 0 3 0 4 5 6 6 0 9 17 18 24 30 31 34 45 56 57 87 0 =440, 87s dcraw_emu
|
|
1 1 1 1 1 1 1 2 0 3 6 4 5 6 6 0 9 17 18 24 30 31 34 45 56 57 87 5 =452, 226s magick-cmd
|
|
0 1 0 1 1 0 0 0 2 3 3 0 3 6 0 0 0 0 17 0 0 0 0 0 56 55 0 5 =153, 51s --th-dec=vips ## stock
|
|
0 1 0 1 1 1 1 0 2 3 3 4 5 6 6 0 8 0 18 11 30 30 18 39 56 55 87 5 =391, 151s vips + apk add imagemagick imagemagick-raw
|
|
0 1 0 1 1 0 0 0 2 3 3 0 3 6 0 0 8 0 17 11 30 0 18 39 56 55 87 5 =346, 128s vips + apk del imagemagick (just imagemagick-raw)
|
|
|
|
xsel -o | tr ' ' '\n' | awk '!$0{next} {t+=$1} END{print t}'
|
|
|
|
apk add time
|
|
rm -rf /w/.hist; time python3 -m copyparty -v /w::r --exit=thgen --th-pregen=j --th-dec=raw --th-r-raw=$FMTS_CPP ; find /w/.hist/ -iname '*.jpg' -size +0 | wc -l
|
|
|
|
391f, 0:03.77elapsed 227264maxresident # rawpy+vips with-embedded-thumbs
|
|
391f, 0:04.79elapsed 467036maxresident # rawpy+pillow with-embedded-thumbs
|
|
434f, 0:29.67elapsed 307724maxresident # dcraw+vips
|
|
434f, 0:29.34elapsed 327980maxresident # dcraw+pillow
|
|
374f, 1:49.70elapsed 4574768maxresident # vips+imagemagick lol lmao
|