New PhotoFlow batch processing options for setting image export parameters

photoflow
batch

(Carmelo Dr Raw) #1

I have done some work to improve and extend the command-line options in batch processing mode, and wrote a rather extensive blog post that explains all the details.

The rearrangement and update of the command-line options was motivated by the fact that up to now it was not possible to specify the image export parameters (format, bit-depth, output colorspace, image size, port-resize sharpening, etc…) in batch mode.

Now this is fixed in the stable branch, and new packages are available for download.

Among other things, PhotoFlow can now be used as an alternative for high-quality image resizing. All resizing operations are performed on linear-gamma data in 32-bit floating-point precision, using the default high-quality algorithm of the VIPS library.

You can read more and get all the useful details in this blog post.


#2

The latest photoflow-git appimage as well as installation from " ppa:dhor/myway" of 07 Nov 2018 does not open in my system (Linux Mint 18.3 Sylvia). Earlier version of appimage is working OK.
I also may like to add that appimage of rawtherapee “RawTherapee-dev-5.4-1098-ge1742c8.AppImage” also does not open. Earlier version is OK.


(Carmelo Dr Raw) #4

Strange! Could you post the full terminal output that you get when you run the failing photoflow and rawtherapee appimages, as well as the ppa version?

Thanks!


#5

Output from ppa version. Regarding output from appimage version, i am struggling to get as I am not very familiar working with terminal.

tushar@tushar-Satellite-C600 ~ $ photoflow
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing Rec.2020 profile
Initializing Rec.2020 profile
Initializing Rec.2020 profile
Initializing ACES profile
Initializing ACES profile
Initializing ACES profile
exePath: /usr/bin
dataPath: /usr/share/photoflow/
localePath: /usr/share/locale
Calling rtengine::LFDatabase::init("/usr/share/photoflow//lensfun/version_1/")
Loading lensfun database from ‘/usr/share/photoflow//lensfun/version_1/’…OK
ICCStore::get_profile(): loading profile from “/usr/share/photoflow//icc/ACEScg-elle-V4-srgbtrc.icc”
ICCStore::get_profile(): loading profile from “/usr/share/photoflow//icc/ACEScg-elle-V4-labl.icc”
ICCStore::get_profile(): loading profile from “/usr/share/photoflow//icc/ACEScg-elle-V4-g10.icc”
ICCStore::get_profile(): loading profile from “/usr/share/photoflow//icc/ClayRGB-elle-V4-g22.icc”
ICCStore::get_profile(): loading profile from “/usr/share/photoflow//icc/ClayRGB-elle-V4-labl.icc”
ICCStore::get_profile(): loading profile from “/usr/share/photoflow//icc/ClayRGB-elle-V4-g10.icc”
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing Lab profile
Initializing XYZ profile
PhotoFlow::main(): argc=1
argv[0]: “photoflow”
terminate called after throwing an instance of ‘std::logic_error’
what(): basic_string::_M_construct null not valid
Aborted


#6

Appimage output of photoflow

tushar@tushar-Satellite-C600 ~ $ ‘/home/tushar/PhotoFlow-git-stable-20181107_1255-a32ba26625ffabbbae38429145bd25d0cfad9898-x86_64.AppImage’
AILIBDIR=/tmp/tmp.Gr9QYYpzU2
System stdc++ library: “/usr/lib/x86_64-linux-gnu/libstdc++.so.6”
System stdc++ library version: “3.4.21”
Bundled stdc++ library version: “3.4.22”
Newest stdc++ library version: “3.4.22”
Using bundled stdc++ library
ln: failed to create symbolic link ‘/tmp/tmp.Gr9QYYpzU2/libgomp.so.1’: File exists
atomiclib: /usr/lib/x86_64-linux-gnu/libatomic.so.1
Checking versions of library “libfontconfig”
system library: “/usr/lib/x86_64-linux-gnu/libfontconfig.so.1.9.0” (libfontconfig.so.1.9.0)
system library version: 1.9.0
ailib: “/tmp/.mount_PhotoF1JbZM8/usr/lib/libfontconfig.so.1.7.0”
bundled library: “/tmp/.mount_PhotoF1JbZM8/usr/lib/libfontconfig.so.1.7.0” (libfontconfig.so.1.7.0)
bundled library version: 1.7.0
newest library version: “1.9.0”
Removing bundled “libfontconfig”
removed ‘/tmp/tmp.Gr9QYYpzU2/libfontconfig.so.1’
removed ‘/tmp/tmp.Gr9QYYpzU2/libfontconfig.so.1.7.0’
Checking versions of library “libfreetype”
system library: “/usr/lib/x86_64-linux-gnu/libfreetype.so.6.12.1” (libfreetype.so.6.12.1)
system library version: 6.12.1
ailib: “/tmp/.mount_PhotoF1JbZM8/usr/lib/libfreetype.so.6.10.0”
bundled library: “/tmp/.mount_PhotoF1JbZM8/usr/lib/libfreetype.so.6.10.0” (libfreetype.so.6.10.0)
bundled library version: 6.10.0
newest library version: “6.12.1”
Removing bundled “libfreetype”
removed ‘/tmp/tmp.Gr9QYYpzU2/libfreetype.so.6’
removed ‘/tmp/tmp.Gr9QYYpzU2/libfreetype.so.6.10.0’
linux-vdso.so.1 => (0x00007ffc483e5000)
libtiff.so.5 => /tmp/tmp.Gr9QYYpzU2/libtiff.so.5 (0x00007ff1d0354000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff1d013a000)
libjpeg.so.62 => /tmp/tmp.Gr9QYYpzU2/libjpeg.so.62 (0x00007ff1cfee5000)
liblcms2.so.2 => /tmp/tmp.Gr9QYYpzU2/liblcms2.so.2 (0x00007ff1cfc8b000)
libvips.so.42 => /tmp/tmp.Gr9QYYpzU2/libvips.so.42 (0x00007ff1cf6d4000)
libgobject-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgobject-2.0.so.0 (0x00007ff1cf483000)
libglib-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libglib-2.0.so.0 (0x00007ff1cf16f000)
libpugixml.so.1 => /tmp/tmp.Gr9QYYpzU2/libpugixml.so.1 (0x00007ff1cef33000)
libfftw3.so.3 => /tmp/tmp.Gr9QYYpzU2/libfftw3.so.3 (0x00007ff1cebae000)
liblensfun.so.1 => /tmp/tmp.Gr9QYYpzU2/liblensfun.so.1 (0x00007ff1ce98f000)
libsigc-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libsigc-2.0.so.0 (0x00007ff1ce788000)
libgtkmm-2.4.so.1 => /tmp/tmp.Gr9QYYpzU2/libgtkmm-2.4.so.1 (0x00007ff1ce12c000)
libatkmm-1.6.so.1 => /tmp/tmp.Gr9QYYpzU2/libatkmm-1.6.so.1 (0x00007ff1cdede000)
libgdkmm-2.4.so.1 => /tmp/tmp.Gr9QYYpzU2/libgdkmm-2.4.so.1 (0x00007ff1cdc91000)
libpangomm-1.4.so.1 => /tmp/tmp.Gr9QYYpzU2/libpangomm-1.4.so.1 (0x00007ff1cda63000)
libgtk-x11-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgtk-x11-2.0.so.0 (0x00007ff1cd3e1000)
libglibmm-2.4.so.1 => /tmp/tmp.Gr9QYYpzU2/libglibmm-2.4.so.1 (0x00007ff1cd161000)
libcairomm-1.0.so.1 => /tmp/tmp.Gr9QYYpzU2/libcairomm-1.0.so.1 (0x00007ff1ccf3b000)
libgdk-x11-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgdk-x11-2.0.so.0 (0x00007ff1ccc7a000)
libfftw3_threads.so.3 => /tmp/tmp.Gr9QYYpzU2/libfftw3_threads.so.3 (0x00007ff1cca73000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff1cc856000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff1cc652000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007ff1cc429000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff1cc120000)
libstdc++.so.6 => /tmp/tmp.Gr9QYYpzU2/libstdc++.so.6 (0x00007ff1cbda0000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff1cbb8a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff1cb7c0000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff1d05c8000)
libjbig.so.2.0 => /tmp/tmp.Gr9QYYpzU2/libjbig.so.2.0 (0x00007ff1cb5b4000)
libMagickCore.so.5 => /tmp/tmp.Gr9QYYpzU2/libMagickCore.so.5 (0x00007ff1cb10b000)
libpng15.so.15 => /tmp/tmp.Gr9QYYpzU2/libpng15.so.15 (0x00007ff1caee0000)
libgmodule-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgmodule-2.0.so.0 (0x00007ff1cacdc000)
libpangoft2-1.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libpangoft2-1.0.so.0 (0x00007ff1caac6000)
libpango-1.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libpango-1.0.so.0 (0x00007ff1ca87b000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007ff1ca638000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007ff1ca38e000)
libgif.so.4 => /tmp/tmp.Gr9QYYpzU2/libgif.so.4 (0x00007ff1ca184000)
libIlmImf.so.7 => /tmp/tmp.Gr9QYYpzU2/libIlmImf.so.7 (0x00007ff1c9ebc000)
libImath.so.6 => /tmp/tmp.Gr9QYYpzU2/libImath.so.6 (0x00007ff1c9caa000)
libHalf.so.6 => /tmp/tmp.Gr9QYYpzU2/libHalf.so.6 (0x00007ff1c9a67000)
libIex.so.6 => /tmp/tmp.Gr9QYYpzU2/libIex.so.6 (0x00007ff1c9848000)
libIexMath.so.6 => /tmp/tmp.Gr9QYYpzU2/libIexMath.so.6 (0x00007ff1c9643000)
libIlmThread.so.6 => /tmp/tmp.Gr9QYYpzU2/libIlmThread.so.6 (0x00007ff1c943c000)
libcfitsio.so.2 => /tmp/tmp.Gr9QYYpzU2/libcfitsio.so.2 (0x00007ff1c9067000)
libwebp.so.4 => /tmp/tmp.Gr9QYYpzU2/libwebp.so.4 (0x00007ff1c8e17000)
libmatio.so.2 => /tmp/tmp.Gr9QYYpzU2/libmatio.so.2 (0x00007ff1c8bde000)
libhdf5.so.8 => /tmp/tmp.Gr9QYYpzU2/libhdf5.so.8 (0x00007ff1c85e7000)
libexif.so.12 => /tmp/tmp.Gr9QYYpzU2/libexif.so.12 (0x00007ff1c83a2000)
libpcre.so.1 => /tmp/tmp.Gr9QYYpzU2/libpcre.so.1 (0x00007ff1c8140000)
libffi.so.6 => /tmp/tmp.Gr9QYYpzU2/libffi.so.6 (0x00007ff1c7f38000)
libgiomm-2.4.so.1 => /tmp/tmp.Gr9QYYpzU2/libgiomm-2.4.so.1 (0x00007ff1c7b7a000)
libatk-1.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libatk-1.0.so.0 (0x00007ff1c7954000)
libgio-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgio-2.0.so.0 (0x00007ff1c75b9000)
libpangocairo-1.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libpangocairo-1.0.so.0 (0x00007ff1c73ac000)
libgdk_pixbuf-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgdk_pixbuf-2.0.so.0 (0x00007ff1c7184000)
libcairo.so.2 => /tmp/tmp.Gr9QYYpzU2/libcairo.so.2 (0x00007ff1c6e5c000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007ff1c6b22000)
libXfixes.so.3 => /tmp/tmp.Gr9QYYpzU2/libXfixes.so.3 (0x00007ff1c691c000)
libXrender.so.1 => /tmp/tmp.Gr9QYYpzU2/libXrender.so.1 (0x00007ff1c6711000)
libXext.so.6 => /tmp/tmp.Gr9QYYpzU2/libXext.so.6 (0x00007ff1c64ff000)
libXinerama.so.1 => /tmp/tmp.Gr9QYYpzU2/libXinerama.so.1 (0x00007ff1c62fc000)
libXi.so.6 => /tmp/tmp.Gr9QYYpzU2/libXi.so.6 (0x00007ff1c60ec000)
libXrandr.so.2 => /tmp/tmp.Gr9QYYpzU2/libXrandr.so.2 (0x00007ff1c5ee1000)
libXcursor.so.1 => /tmp/tmp.Gr9QYYpzU2/libXcursor.so.1 (0x00007ff1c5cd6000)
libXcomposite.so.1 => /tmp/tmp.Gr9QYYpzU2/libXcomposite.so.1 (0x00007ff1c5ad3000)
libXdamage.so.1 => /tmp/tmp.Gr9QYYpzU2/libXdamage.so.1 (0x00007ff1c58d0000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007ff1c56c8000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007ff1c54ae000)
libXt.so.6 => /tmp/tmp.Gr9QYYpzU2/libXt.so.6 (0x00007ff1c5247000)
liblzma.so.5 => /tmp/tmp.Gr9QYYpzU2/liblzma.so.5 (0x00007ff1c5021000)
libbz2.so.1 => /tmp/tmp.Gr9QYYpzU2/libbz2.so.1 (0x00007ff1c4e11000)
libgomp.so.1 => /tmp/tmp.Gr9QYYpzU2/libgomp.so.1 (0x00007ff1c4be5000)
libltdl.so.7 => /tmp/tmp.Gr9QYYpzU2/libltdl.so.7 (0x00007ff1c49db000)
libthai.so.0 => /tmp/tmp.Gr9QYYpzU2/libthai.so.0 (0x00007ff1c47cf000)
libgthread-2.0.so.0 => /tmp/tmp.Gr9QYYpzU2/libgthread-2.0.so.0 (0x00007ff1c45cd000)
libharfbuzz.so.0 => /tmp/tmp.Gr9QYYpzU2/libharfbuzz.so.0 (0x00007ff1c436a000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007ff1c4145000)
libsz.so.2 => /tmp/tmp.Gr9QYYpzU2/libsz.so.2 (0x00007ff1c3f42000)
libselinux.so.1 => /tmp/tmp.Gr9QYYpzU2/libselinux.so.1 (0x00007ff1c3d1b000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff1c3b00000)
libmount.so.1 => /tmp/tmp.Gr9QYYpzU2/libmount.so.1 (0x00007ff1c38be000)
libpixman-1.so.0 => /tmp/tmp.Gr9QYYpzU2/libpixman-1.so.0 (0x00007ff1c3615000)
libEGL.so.1 => /tmp/tmp.Gr9QYYpzU2/libEGL.so.1 (0x00007ff1c33df000)
libxcb-shm.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-shm.so.0 (0x00007ff1c31db000)
libxcb.so.1 => /tmp/tmp.Gr9QYYpzU2/libxcb.so.1 (0x00007ff1c2fb3000)
libxcb-render.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-render.so.0 (0x00007ff1c2da5000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007ff1c2b31000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff1c2929000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007ff1c2724000)
libgraphite2.so.3 => /tmp/tmp.Gr9QYYpzU2/libgraphite2.so.3 (0x00007ff1c24f6000)
libaec.so.0 => /tmp/tmp.Gr9QYYpzU2/libaec.so.0 (0x00007ff1c22ee000)
libblkid.so.1 => /tmp/tmp.Gr9QYYpzU2/libblkid.so.1 (0x00007ff1c20af000)
libxcb-dri2.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-dri2.so.0 (0x00007ff1c1eaa000)
libX11-xcb.so.1 => /tmp/tmp.Gr9QYYpzU2/libX11-xcb.so.1 (0x00007ff1c1ca8000)
libxcb-dri3.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-dri3.so.0 (0x00007ff1c1aa5000)
libxcb-xfixes.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-xfixes.so.0 (0x00007ff1c189d000)
libxcb-present.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-present.so.0 (0x00007ff1c169a000)
libxcb-sync.so.1 => /tmp/tmp.Gr9QYYpzU2/libxcb-sync.so.1 (0x00007ff1c1493000)
libxshmfence.so.1 => /tmp/tmp.Gr9QYYpzU2/libxshmfence.so.1 (0x00007ff1c1290000)
libgbm.so.1 => /tmp/tmp.Gr9QYYpzU2/libgbm.so.1 (0x00007ff1c1082000)
libwayland-client.so.0 => /tmp/tmp.Gr9QYYpzU2/libwayland-client.so.0 (0x00007ff1c0e73000)
libwayland-server.so.0 => /tmp/tmp.Gr9QYYpzU2/libwayland-server.so.0 (0x00007ff1c0c60000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007ff1c0a4e000)
libXau.so.6 => /tmp/tmp.Gr9QYYpzU2/libXau.so.6 (0x00007ff1c084a000)
libglapi.so.0 => /tmp/tmp.Gr9QYYpzU2/libglapi.so.0 (0x00007ff1c061a000)
libxcb-glx.so.0 => /tmp/tmp.Gr9QYYpzU2/libxcb-glx.so.0 (0x00007ff1c03ff000)
libXxf86vm.so.1 => /tmp/tmp.Gr9QYYpzU2/libXxf86vm.so.1 (0x00007ff1c01f9000)
OWD: /home/tushar
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing Rec.2020 profile
Initializing Rec.2020 profile
Initializing Rec.2020 profile
Initializing ACES profile
Initializing ACES profile
Initializing ACES profile
exePath: /tmp/.mount_PhotoF1JbZM8/usr/bin
dataPath: /tmp/.mount_PhotoF1JbZM8/usr/share/photoflow/
localePath: /tmp/.mount_PhotoF1JbZM8/usr/share/locale
Calling rtengine::LFDatabase::init("")
Loading lensfun database from the default directories…FAIL
ICCStore::get_profile(): loading profile from “/tmp/.mount_PhotoF1JbZM8/usr/share/photoflow//icc/ACEScg-elle-V4-srgbtrc.icc”
ICCStore::get_profile(): loading profile from “/tmp/.mount_PhotoF1JbZM8/usr/share/photoflow//icc/ACEScg-elle-V4-labl.icc”
ICCStore::get_profile(): loading profile from “/tmp/.mount_PhotoF1JbZM8/usr/share/photoflow//icc/ACEScg-elle-V4-g10.icc”
ICCStore::get_profile(): loading profile from “/tmp/.mount_PhotoF1JbZM8/usr/share/photoflow//icc/ClayRGB-elle-V4-g22.icc”
ICCStore::get_profile(): loading profile from “/tmp/.mount_PhotoF1JbZM8/usr/share/photoflow//icc/ClayRGB-elle-V4-labl.icc”
ICCStore::get_profile(): loading profile from “/tmp/.mount_PhotoF1JbZM8/usr/share/photoflow//icc/ClayRGB-elle-V4-g10.icc”
Initializing sRGB profile
Initializing sRGB profile
Initializing sRGB profile
Initializing Lab profile
Initializing XYZ profile
PhotoFlow::main(): argc=1
argv[0]: “/tmp/.mount_PhotoF1JbZM8/usr/bin/photoflow.real”
terminate called after throwing an instance of ‘std::logic_error’
what(): basic_string::_S_construct null not valid
/tmp/.mount_PhotoF1JbZM8/AppRun: line 43: 11167 Aborted “$APPDIR/usr/bin/photoflow.real” “$@”


#7

The latest release of appimage “PhotoFlow-git-stable-20181108_1224-fbd1fd779dbabe1b3f787e1fb535be86215c0094-x86_64.AppImage” is opening in my system. (Linux Mint 18.3 Sylvia). Will check in detail later.


#8

Yup, now also working in Mojahell 10.14.1. CLI :+1: too
Issue https://github.com/aferrero2707/PhotoFlow/issues/177 can be closed
I don’t do it myself 'cause you’ve told me you prefer to slap the fish yourself
Thank you :penguin: :medal_military:


#9

The latest photoflow-git appimage as well as installation from " ppa:dhor/myway " of 08 Nov 2018 is working on my system Linux Mint 18.3.


#10

Couple of 5 things:

Andrea PLEASE IGNORE point 1

  1. There’s a typo in phf’s batch code, right now is height, should be heigh… this was driving me :peanuts:
     

  2. Is there a way to pass arguments for just one parameter; i.e. just the longest side. If not, what’s the proper way of dealing with it? What is working for me now is for an output of 666px wide (longest side) > width=666, height=200000 < I honoured the bug, may live short but shan’t be insulted =)
     

  3. Just to be sure, in the CLI arguments; 0 (zero) equals to ON/enable and 1 (one) equals OFF/disable?
     

  4. Even when the image is successfully rendered, I get a buffer: vips_image_get: field "icc-profile-data" not found vips_image_get: field "icc-profile-data" not found care to comment, is it a dead animal, shall I grab shovel and flashlight?
     

  5. Just out of curiosity what’s high-water mark 60.89 MB referring to?

 
What I’m using:
/photoflow --batch --export-opt=jpg_depth=8,jpg_compress=100,width=666,height=200000,sharpen_enabled=1,sharpen_radius=0.5, profile_type=sRGB,trc_type=linear INPUT OUTPUT.jpg

 
Alldug :pray:


#11

@chroma_ghost

1. Height is the correct spelling.
2. I don’t think that is possible even in the GUI. I asked a bunch of stuff regarding resize. I am sure that they are on the to-do list.


#12

Height is the correct spelling.

  1. You’re right :+1:, my bad, what was I drinking thinking?!!!
  2. I know you did… for instance with IM’s convert you can “duplicate” the param, say 666x666 and the program would convert to whichever the largest size corresponds.

(Mica) #13

Something gooooooood :slight_smile:


#14

No doubt suffering from the case of ludic heighlights. Nothing punny meds won’t cure.


#15

{22nd century - telepathy and stuff}
me grandpa used to say a real friend was someone who’ll take you offtopic… ohhh the good old times he!!!

Mica, not good enough if can steer right :expressionless:

@afre your exercising will be the end of my good eye; you could at least do a proper, mad flicker rate, epilapsys inducing, way beyond nauseating, clockwork soundtracked subliminous moderfuckin’ gif, then I won’t need dringk. Here some inspiration ,but brace yourself!! :meat_on_bone:

 
 
6. Any way to change the scaler in the CLI, I really cannot test if they’re mutually exclusive (if set scale & rotate in pfi)?
 
7. photoflow --batch [--config=config_file.pfi] --export-opt=[export options] in_file out_file that config_file.pfi is the “normal” edit text file, innit? I use below settings and I’m not able to make it work. What am I doing wrong?

/photoflow --batch --config=PATH-TO-INPUT-X.pfi --export-opt=jpg_depth=8,jpg_compress=100,width=666,height=200000,sharpen_enabled=1,sharpen_radius=0.5, profile_type=sRGB,trc_type=linear INPUT-X OUTPUT.jpg

Edit:
cover the tracks, cover the traccckkksssQ!!!
 

& PS (then we’re whole again, sign of the cross + akua bendida)

Nothing punny meds won’t cure. CURE CURE


#16

@Carmelo_DrRaw photoflow --batch --help is verbose (43 lines!) before the Usage text. The usage text itself is kind of overwhelming. Is there a way to make it easier to read?

I am also having trouble replicating the GUI export function in CLI. The ranges are different: [0,16383] (CLI) and [5.79227e-005,1.66992] (GUI). The CLI doesn’t retain the profile when I set no_change or make it explicit:

for %i in (*.CR2) do photoflow --batch batch.pfi --export-opt=tiff_depth=32,tiff_compress=1,profile_type=Rec2020,trc_type=linear %i pf\%~ni.tif

Edit: There is a few error messages at the end, which I forgot to copy. Maybe --batch has trouble finding the proper profile.

Details: batch.pfi (15.8 KB).

image image


(Carmelo Dr Raw) #17

I can try to condense it, but given the lack of a proper man page it is sort of the reference help for all the batch commands…

Do you mean that the output TIFF is actually not floating-point?

Sounds like a bug, let me check from my side.


(Carmelo Dr Raw) #18

Indeed there was a bug that I’ve fixed. Now if one dimension is not given it will be automatically computed such that the aspect ratio is preserved.
Thanks for reporting this!

No, it is the opposite: 0->OFF, 1->ON
Why you get this impression? I just tested with the sharpen_enabled parameter, and setting it to 0 indeed disables the sharpening…

I also see that from time to time, but I still have to figure out the exact reason. Seems to be harmless though…

This is the maximum amount of RAM used by the VIPS library to process the image.

There is not jpg_depth option available, and jpg_compress should be jpeg_quality instead. For the rest, it seems correct…

They will be processed sequentially, first the scale/rotate in the .pfi, then the one in the export module.

The help is a bit misleading, and I should correct it. The .pfi must in fact correspond to a PRESET, i.e. a group of one or more layers without the background layer with the input image. The input image is taken from the last-but-one command line parameter…

Hope this is clear. If it still doesn’t work, I’d need a sample input image and config file to see what is going wrong.

I had a look at your batch.pfi file, and I noticed one problem: it contains the RAW loader layer, which should be omitted instead. The RAW loader is automatically inserted at the bottom of the stack when an input RAW file is detected. You should only put the RAW developer (and any layer above it in case there is further processing) in the .pfi
By the way, the .pfi should be actually renamed .pfp to denote a preset. It is only an aesthetic change (the code works fine with both names), but it makes things a bit clearer.

I will change the help messages accordingly.

Could you first try what I suggested? The other problems might be a by-product of the presence of the RAW loader layer…


#19

Indeed there was a bug that I’ve fixed. Now if one dimension is not given it will be automatically computed such that the aspect ratio is preserved.
Thanks for reporting this!

SUPER!! Check :white_check_mark: Working fine, life’s a tiny bit easier now. thanks :star:

No, it is the opposite: 0->OFF, 1->ON
Why you get this impression? I just tested with the sharpen_enabled parameter, and setting it to 0 indeed disables the sharpening…

Ok, gotcha. Me got too many impressions :rabbit2:
 

buffer: vips_image_get: field “icc-profile-data” not found vips_image_get: field “icc-profile-data” not found

I also see that from time to time, but I still have to figure out the exact reason. Seems to be harmless though…

Ok, gud to know, I started giving milk, calling it bobichu

 

high-water mark 60.89 MB referring to?

This is the maximum amount of RAM used by the VIPS library to process the image.

this poet coders =)

 

There is not jpg_depth option available, and jpg_compress should be jpeg_quality instead. For the rest, it seems correct…

Mend it :white_check_mark: grace :star:

 

Any way to change the scaler in the CLI, I really cannot test if they’re mutually exclusive (if set scale & rotate in pfi)?

They will be processed sequentially, first the scale/rotate in the .pfi, then the one in the export module.

Ok, I still have to do neu tests (when I figure out the pfi file thingy) and such…lanczos is sometimes just too sharp for 1 stop downscale, IMO.

 

The help is a bit misleading, and I should correct it. The .pfi must in fact correspond to a PRESET, i.e. a group of one or more layers without the background layer with the input image. The input image is taken from the last-but-one command line parameter…

The help is a glorious mess, I bet was written in the intermission of a quantum photo developing thesis by a playing pong pizza eatin’ penguin, je je - breathe BREATHE!!! SAid Dr. Frankenspock to the potatoe
So you mean save - all but background / raw dev - as a preset (.pfp); IF yes nevermind I tested it with a pfp and does not work… I’ll have to come back to this photoflow --batch [--config=config_file.pfi] later

Cheers Andrea :+1:


#20

Okay, now understand; one saves the pfi (photoflow’s settings file) with the backgrounf / raw unchecked; then just --config=PATH-TO.pfi

I slightly edited the --help layout for my own use and sanity. It takes more space but it’s more readable IMO :grinning:

$ photoflow --batch --help

Usage: photoflow --batch [--config=config_file.pfi] --export-opt=[export options] in_file out_file
The .pfi file should be saved with background or raw layers unchecked. Also 0->OFF and 1->ON

OPTIONS
• profile_type=X (default: sRGB) ICC profile for the exported image
    
    SUB-OPTIONS
      no_change: keep the image in the same colorspace used for processing (by default linear Rec2020)
      
      sRGB, Rec2020, AdobeRGB, ProPhoto, ACEScg, ACES: convert the image to the specified colorspace
      
      from_disk: use a custom ICC profile from disk
      
• profile_name="X.icc" path to profile from disk when "profile_type" is set to "from_disk"
  
• trc_type=X (default: standard) TRC of the output ICC profile
  This option has no effect when using a custom profile from disk

    SUB-OPTIONS
      - standard: use the standard TRC for the selected colorspace
        sRGB TRC for the sRGB colorspace, gamma=2.2 for AdobeRGB, etc...
        
      - linear: linear (gamma=1.0) TRC
      
      - perceptual: same TRC as defined in the CIELab L channel specifications
      
      - sRGB: same TRC as defined in the sRGB specifications
	
    
• intent=X (default: relative_colorimetric) Rendering intent for the output ICC conversion.
  Only relative and absolute colorimetric intents are implemented for the built-in colorspaces.
  Perceptual and saturation intents might be available when using LUT profiles from disk.
    
    SUB-OPTIONS
      - relative_colorimetric:
      - perceptual:
      - saturation:absolute_colorimetric (default:
      - relative_colorimetric)
    
    
• bpc=0/1 (default: 1) enable/disable black point compensation in the output ICC conversion
  

Example:

  --export-opt=tiff_depth=16,tiff_compress=1,width=800,height=600,sharpen_enabled=1,sharpen_radius=0.5,\
    profile_type=Rec2020,trc_type=linear

(Carmelo Dr Raw) #21

Or even better

  • select all layers you want to save as a preset, excluding the background one
  • right-click to bring up the contextual menu, and choose “Save preset”
  • save the preset with .pfp extension wherever you want
  • pass the preset to the --config=PATH-TO.pfp option

Thanks! I will incorporate your changes.

I have added a new export option, called interpolator, that allows to choose the interpolation method for the rescaling. Valid options are

  • interpolator=nearest
  • interpolator=bilinear
  • interpolator=bicubic
  • interpolator=lanczos2
  • interpolator=lanczos3

Let me know if it works for you…