Re: [NTG-context] t-degrade.tex (solved)

2012-07-31 Thread Peter Münster
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.0 +0200
+++ grph-inc.lua2012-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.0 +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
\startluacode
local format = string.format
-- figures.cachepaths.path = "cache" -- should be setup-option
local function sample_down(oldname, newname, resolution)
  local request = figures.current().request
  local width = request.width:sub(1, -3)
  local height = request.height:sub(1, -3)
  if resolution == "" or (width == "" and height == "") then
print(format("Nothing to do: %s, %s, %s", oldname, newname, resolution))
return
  end
  local inch = 72.27
  local image = img.scan{filename = oldname}
  local xy = image.xsize / image.ysize
  if width == "" then
width = height * xy
  end
  if height == "" then
height = width / xy
  end
  local xsize = resolution * width / inch
  local ysize = resolution * height / inch
  if xsize < image.xsize or ysize < image.ysize then
local s = format("gm convert -resize %dx%d %s %s",
 xsize, ysize, oldname, newname)
print("Conversion: " .. s)
os.execute(s)
  else
print(format("Nothing to do: %s, %s, %s", oldname, newname, resolution))
print(format("xsize = %d, ysize = %d", xsize, ysize))
  end
end

figures.converters.jpg = figures.converters.jpg or {}
figures.converters.jpg["lowres.jpg"] = sample_down
\stopluacode

\starttext
\setupexternalfigures[resolution=50, conversion=lowres.jpg]
\externalfigure[hacker][width=0.5\textwidth]
\setupexternalfigures[resolution=10]
\externalfigure[hacker][width=0.5\textwidth]
\stoptext
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] t-degrade.tex

2012-07-31 Thread luigi scarso
On Tue, Jul 31, 2012 at 9:22 AM, Jan Kula  wrote:

> 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?
>
>
If I have time I will try to rebuild the module, because it seems that the
bug with libpng is fixed.


-- 
luigi
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___

Re: [NTG-context] t-degrade.tex

2012-07-31 Thread 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-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

___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___