Am 11.08.22 um 15:51 schrieb Henning Hraban Ramm via ntg-context:
Hi Hans,
yesterday you told me about the image conversions in grph-con.lua, and I tried to find out how to use them. Up to know I only knew "mp" for SVG images.
I found I can use "gray.pdf" or "cmyk.pdf" to convert an image (JPG or PNG) to grayscale/CMYK, but the resolution isn’t used for downsampling (of course, it’s not mentioned in the command template):
\externalfigure[hacker][conversion={gray.pdf},resolution=72]
I tried to write my own downsampling converter, but don’t understand how I can hook it into the list of converters:
"""
local downsample = sandbox.registerrunner { name = "downsample", program = "gm", template = [[convert -compress Zip -sampling-factor 1x1 -density %resolution%x%resolution% -resample %resolution%x%resolution% %oldname% %newname%]], checkers = checkers, defaults = defaults, }
programs.downsample = { runner = downsample }
I found the solution in https://wiki.contextgarden.net/Using_Graphics#Image_Conversion, but that’s not as elegant as those in grph-inc.lua (And I learned that ImageMagick’s convert works differently than GraphicsMagick’s WRT -density; i.e. you must use "gm convert".) Peter Münster’s grph-downsample.lua was better, it calculated the actual pixel size necessary, but that doesn’t work any more.
"""
(I’m not sure if I must calculate the desired pixel size beforehand.)
-*-*-
Apart from converters, there are several parameters of \externalfigure that I don’t understand and thus can’t document in the Wiki; a few are even not yet documented in the interface files:
* equalwidth/equalheight * s/sx/sy * xmax/ymax * prefix, label, comment * bodyfont * mask * frames (≠ frame) * interaction (PDF inclusion; found)crossreference * resources * display (alternative source? multimedia only?) * order (of extensions; found) * crop, transform * controls, preview: only related to video and thus obsolete? * hfactor/wfactor: When do these make sense? (I know factor)
Also, orientation seems to be missing in the interface (auto-syntax doesn’t pick it up). Hraban