* Getting changing/random graphics?
@ 2012-02-16 6:43 Mari Voipio
2012-02-16 9:48 ` Hans Hagen
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Mari Voipio @ 2012-02-16 6:43 UTC (permalink / raw)
To: mailing list for ConTeXt users
Hello all,
I'm trying to do something that should be possible and I think
"variables" is the answer, I just can't figure out how.
I have a pile of photos (jpg) in a directory and the assumption is
that they are all the same size and there's a spot for the photo on a
layer at the top of the page. I already found out how I can get
ConTeXt to draw the layer separately for each page (at
http://wiki.contextgarden.net/layers#Use_dynamic_content), but I think
I need a "variables for dummies" page...
This time I'm not too picky, the images can be used randomly or in the
order they are in the directory and then cycled, I'd just like to use
more than one (and I'm so not doing every page by hand).
So, if I have
photo1.jpg
photo2.jpg
photo3.jpg
photo4.jpg
and \dorecurse{10}{insert random photo here}, how do I do it?
Thank you,
Mari
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Getting changing/random graphics?
2012-02-16 6:43 Getting changing/random graphics? Mari Voipio
@ 2012-02-16 9:48 ` Hans Hagen
2012-02-16 9:50 ` Hans Hagen
2012-02-16 9:53 ` Marco
2 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2012-02-16 9:48 UTC (permalink / raw)
To: mailing list for ConTeXt users; +Cc: Mari Voipio
On 16-2-2012 07:43, Mari Voipio wrote:
> Hello all,
>
> I'm trying to do something that should be possible and I think
> "variables" is the answer, I just can't figure out how.
>
> I have a pile of photos (jpg) in a directory and the assumption is
> that they are all the same size and there's a spot for the photo on a
> layer at the top of the page. I already found out how I can get
> ConTeXt to draw the layer separately for each page (at
> http://wiki.contextgarden.net/layers#Use_dynamic_content), but I think
> I need a "variables for dummies" page...
>
> This time I'm not too picky, the images can be used randomly or in the
> order they are in the directory and then cycled, I'd just like to use
> more than one (and I'm so not doing every page by hand).
>
>
> So, if I have
>
> photo1.jpg
> photo2.jpg
> photo3.jpg
> photo4.jpg
>
>
> and \dorecurse{10}{insert random photo here}, how do I do it?
More fancy ...
\startluacode
local files = { }
function document.collectgraphics(pattern)
files = table.merged(files,dir.glob(pattern))
files = table.unique(files)
table.sort(files)
logs.report(string.format("graphics: %s",table.concat(files," ")))
end
function document.choosegraphics()
if #files > 0 then
context(table.remove(files, math.random(1,#files)) or "dummy")
else
context("dummy")
end
end
\stopluacode
\def\CollectGraphics[#1]{\ctxlua{document.collectgraphics("#1")}}
\def\ChooseGraphic {\ctxlua{document.choosegraphic()}}
\CollectGraphics[*.png]
\CollectGraphics[*.jpg]
\starttext
\dorecurse {10} {
\expanded{\externalfigure[\ChooseGraphic][width=4cm]}
}
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Getting changing/random graphics?
2012-02-16 6:43 Getting changing/random graphics? Mari Voipio
2012-02-16 9:48 ` Hans Hagen
@ 2012-02-16 9:50 ` Hans Hagen
2012-02-22 8:22 ` Mari Voipio
2012-02-16 9:53 ` Marco
2 siblings, 1 reply; 6+ messages in thread
From: Hans Hagen @ 2012-02-16 9:50 UTC (permalink / raw)
To: mailing list for ConTeXt users; +Cc: Mari Voipio
[-- Attachment #1: Type: text/plain, Size: 608 bytes --]
On 16-2-2012 07:43, Mari Voipio wrote:
> I'm trying to do something that should be possible and I think
> "variables" is the answer, I just can't figure out how.
attached .. (will be in test suite)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
[-- Attachment #2: random-001.tex --]
[-- Type: text/x-tex, Size: 810 bytes --]
% For Mari Voipio
\startluacode
local files = { }
function document.collectgraphics(pattern)
files = table.merged(files,dir.glob(pattern))
files = table.unique(files)
table.sort(files)
logs.report(string.format("graphics: %s",table.concat(files," ")))
end
function document.choosegraphic()
if #files > 0 then
context(table.remove(files, math.random(1,#files)) or "dummy")
else
context("dummy")
end
end
\stopluacode
\def\CollectGraphics[#1]{\ctxlua{document.collectgraphics("#1")}}
\def\ChooseGraphic {\ctxlua{document.choosegraphic()}}
\CollectGraphics[*.png]
\CollectGraphics[*.jpg]
\starttext
\dorecurse {10} {
\expanded{\externalfigure[\ChooseGraphic][width=4cm]}
}
\stoptext
[-- Attachment #3: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Getting changing/random graphics?
2012-02-16 6:43 Getting changing/random graphics? Mari Voipio
2012-02-16 9:48 ` Hans Hagen
2012-02-16 9:50 ` Hans Hagen
@ 2012-02-16 9:53 ` Marco
2012-02-22 7:32 ` Mari Voipio
2 siblings, 1 reply; 6+ messages in thread
From: Marco @ 2012-02-16 9:53 UTC (permalink / raw)
To: ntg-context
On 2012-02-16 Mari Voipio <mari.voipio@iki.fi> wrote:
> So, if I have
>
> photo1.jpg
> photo2.jpg
> photo3.jpg
> photo4.jpg
>
> and \dorecurse{10}{insert random photo here}, how do I do it?
\dorecurse{4}{\externalfigure[photo\recurselevel]}
Beware, \recurselevel counts go like this 1 2 3 4 5 …. If your
photos are not numbered according to this scheme, the 10th picture
will bite you.
Marco
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Getting changing/random graphics?
2012-02-16 9:53 ` Marco
@ 2012-02-22 7:32 ` Mari Voipio
0 siblings, 0 replies; 6+ messages in thread
From: Mari Voipio @ 2012-02-22 7:32 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Thu, Feb 16, 2012 at 11:53, Marco <netuse@lavabit.com> wrote:
> On 2012-02-16 Mari Voipio <mari.voipio@iki.fi> wrote:
>
>> So, if I have
>>
>> photo1.jpg
>> photo2.jpg
>> photo3.jpg
>> photo4.jpg
>>
>> and \dorecurse{10}{insert random photo here}, how do I do it?
>
> \dorecurse{4}{\externalfigure[photo\recurselevel]}
>
> Beware, \recurselevel counts go like this 1 2 3 4 5 …. If your
> photos are not numbered according to this scheme, the 10th picture
> will bite you.
Beautiful, it works - and I even understand it. :-) And I managed to
figure out by myself that I can do a nested \dorecurse to multiply
this:
\dorecurse{3}{\dorecurse{6}{\externalfigure[pikkukuva\recurselevel][height=25mm,frame=on]}}
My not be the most elegant (or fastest compiling!) solution, but this
one I can definitely get to work and it'll suit my purpose well
enough.
Thank you,
Mari
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Getting changing/random graphics?
2012-02-16 9:50 ` Hans Hagen
@ 2012-02-22 8:22 ` Mari Voipio
0 siblings, 0 replies; 6+ messages in thread
From: Mari Voipio @ 2012-02-22 8:22 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Thu, Feb 16, 2012 at 11:50, Hans Hagen <pragma@wxs.nl> wrote:
> On 16-2-2012 07:43, Mari Voipio wrote:
>
>> I'm trying to do something that should be possible and I think
>> "variables" is the answer, I just can't figure out how.
>
>
> attached .. (will be in test suite)
It works. :-)
However, this one apparently uses each pic only once and after that I
just get "dummies". Nesting this \dorecurse didn't work (not that I
expected it to, but had to try anyway) - how to tell this code either
"when you've used up all the photos, start over" or "add any random
graphic in this directory"?
It looks like I'm going to have 50-100 pages, so if there are 10-15
graphics and they are added completely at random, the likelihood of
each one to appear at least once is pretty high (at least according to
what I remember of my probability math). Thus I won't need any
complicated checkups, any old randomizer in the "take a card out of a
bag and put it bag" sense should do the trick; I'm just not used to
doing this type of stuff, so I cannot even fathom where to start!
Hmm... I'd like to include besides png and jpg also vector graphics in
pdf format, but obviously I need to exclude any pdf documents in the
same directory. Of course one solution is to put the graphics into a
separate directory, but if I only want to included .png, .jpg and .pdf
with a certain name (like 33s-sensor.jpg, 33s-cutthrough.pdf, etc.),
how should the lua code then look like? The name can be written into
the code, as long as I put decent comments in, I should be able to
adjust it as needed.
(File size shouldn't be a concern, the graphics are going to be 2-2.5
cm tall and once I've collected the appropriate graphics, I'll make
sure the bitmaps are fit for this use. Besides, I'll be using a print
shop and they get a lot worse than anything I can produce with
ConTeXt...)
In a "need-to-know" mode,
Mari
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-02-22 8:22 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-16 6:43 Getting changing/random graphics? Mari Voipio
2012-02-16 9:48 ` Hans Hagen
2012-02-16 9:50 ` Hans Hagen
2012-02-22 8:22 ` Mari Voipio
2012-02-16 9:53 ` Marco
2012-02-22 7:32 ` Mari Voipio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).