Hi, Does it make sense, to port http://modules.contextgarden.net/t-degrade to mkiv, or is there already an existing solution in ConTeXt to downsample jpeg-images on the fly? TIA for any hints, -- Peter
Hi Peter, On 07/27/2012 12:52 PM, Peter Münster wrote:
Hi,
Does it make sense, to port http://modules.contextgarden.net/t-degrade to mkiv, or is there already an existing solution in ConTeXt to downsample jpeg-images on the fly?
TIA for any hints,
There is Luigi's gmwand approach in grph-wnd.lua and something on conversions in grph-inc.lua, but I don't know a higher level context interface. Anybody else? Jano
On Tue, Jul 31, 2012 at 9:22 AM, Jan Kula
Hi Peter,
On 07/27/2012 12:52 PM, Peter Münster wrote:
Hi,
Does it make sense, to port http://modules.contextgarden.**net/t-degradehttp://modules.contextgarden.net/t-degrade to mkiv, or is there already an existing solution in ConTeXt to downsample jpeg-images on the fly?
TIA for any hints,
There is Luigi's gmwand approach in grph-wnd.lua and something on conversions in grph-inc.lua, but I don't know a higher level context interface. Anybody else?
If I have time I will try to rebuild the module, because it seems that the bug with libpng is fixed. -- luigi
On Fri, Jul 27 2012, Peter Münster wrote:
Does it make sense, to port http://modules.contextgarden.net/t-degrade to mkiv, or is there already an existing solution in ConTeXt to downsample jpeg-images on the fly?
I've played a bit with the converters: --8<---------------cut here---------------start------------->8--- \startluacode figures.converters["jpg"] = { ["lowres.jpg"] = function(oldname,newname,resolution) os.execute"something" print(table.serialize(figures.current())) end } \stopluacode \starttext \externalfigure[hacker][width=0.5\textwidth, conversion=lowres.jpg] \stoptext --8<---------------cut here---------------end--------------->8--- 2 questions: - How can I get the width and/or the height of the figure inside the function? "0.5\9extwidth " is not very useful on the lua-side... - How can I specify a sub-directory where to place the converted images? (not so important, just to avoid cluttering the current directory) TIA for any help, -- Peter
Now I can downsample jpeg-files on the fly, see attached example file. But I need 2 patches: 1.) To get the width and the height into the name of the file, because when the figure dimensions change, there must be a new conversion: --8<---------------cut here---------------start------------->8--- --- grph-inc.lua~ 2012-06-05 10:37:01.000000000 +0200 +++ grph-inc.lua 2012-07-31 22:40:39.214426838 +0200 @@ -528,6 +528,9 @@ if resolution and resolution ~= "" then -- the order might change newbase = newbase .. "_" .. resolution end + local width = figures.current().request.width + local height = figures.current().request.height + newbase = newbase .. "_" .. width .. "_" .. height -- -- see *, we had: -- --8<---------------cut here---------------end--------------->8--- 2.) To avoid crap in the width and height options: --8<---------------cut here---------------start------------->8--- --- grph-inc.mkiv~ 2012-07-20 23:26:52.000000000 +0200 +++ grph-inc.mkiv 2012-08-01 00:02:23.851094854 +0200 @@ -293,6 +293,10 @@ % \the\t_grph_include_local_settings \dostarttagged\t!image\empty + \edef\current_width{\externalfigureparameter\c!width}% + \edef\current_height{\externalfigureparameter\c!height}% + \def\nocrap##1{\doifnotemptyvalue{##1}{% + \the\dimexpr\csname##1\endcsname\relax}}% \ctxlua{figures.push { name = "\p_grph_include_name", label = "\p_grph_include_label", @@ -312,8 +316,8 @@ resolution = "\externalfigureparameter\c!resolution", color = "\internalspotcolorparent{\externalfigureparameter\c!color}", % hack is needed ["repeat"] = "\externalfigureparameter\c!repeat", - width = "\externalfigureparameter\c!width", % can be crap - height = "\externalfigureparameter\c!height", % can be crap + width = "\nocrap{current_width}", % no more crap + height = "\nocrap{current_height}", % no more crap } }% \ctxlua{figures.identify()}% % also mode: checkpresense only --8<---------------cut here---------------end--------------->8--- Hans, could you please patch the files? Cheers, -- Peter
participants (3)
-
Jan Kula
-
luigi scarso
-
Peter Münster