On Monday, May 25, 2015 19:28 you wrote:
> I don't know that script, could you attach it ?
The script was offered yesterday on the 'devel' lists
>
> where exactly did you put the script ?
I put the script into ~/.config/darktable/lua
>
> what exactly did you put in your luarc ?
@require "contact"
Added guidance would be appreciated
David
>
> On Sun, May 24, 2015 at 8:36 PM, David Vincent-Jones <[email protected]>
>
> wrote:
> > I wanted to try out the 'contact' lua script. I have put the script into
> > the
> > correct place (hopefully) and put 'luarc' into place .... but how do I
> > start
> > the script?
> >
> > David
> >
> >
> > --------------------------------------------------------------------------
> > ---- One dashboard for servers and applications across
> > Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+
> > applications
> > Performance metrics, stats and reports that give you Actionable Insights
> > Deep dive visibility with transaction tracing using APM Insight.
> > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> > _______________________________________________
> > Darktable-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/darktable-users
#!/usr/bin/lua
-- do_contactsheet.lua creates a contact sheet (Kontakabzug) for a set of pictures
-- it uses LaTeX to create a PDF document
-- it supports JPG and PNG files
-- version 1.1
-- (c) Matthias Bodenbinder, May 2015
-- default values
title = "Contactsheet"
thumbs_per_line = 4
resize = false
debug = false
-- width per picture = w*\textwidth
w = 1/thumbs_per_line - 0.01;
-- pixel width per picture assuming 150 dpi
pxl = math.floor(20/thumbs_per_line / 2.54 * 150)
-- LaTeX preamble
tex_start= [[\documentclass[a4paper,10pt]{article}
\usepackage{graphicx}
\usepackage{fontspec}
\usepackage{hyperref}
\pagestyle{empty}
\parindent0pt
\parskip1em
\usepackage{geometry}
\geometry{a4paper,left=5mm,right=5mm, top=5mm, bottom=5mm}
\begin{document}
]]
-- place all thumbnails
function thumbnails()
for i,v in ipairs(pictures) do
local thumbfile = resize_image(i)
-- mask the underscores for the labels
local label = string.gsub(filenames[i],"_", "\\_")
io.write("\\begin{minipage}[b]{" .. w .. "\\textwidth}\n" ..
" \\includegraphics[width=\\textwidth]{" .. thumbfile .. "}\\newline\n" ..
" \\centering{\\footnotesize\\href{run:" .. pictures[i] .. "}{\\texttt{" .. i .. ": " .. label .. "}}}\n" ..
"\\end{minipage}\n")
if( i % thumbs_per_line == 0 ) then
-- new line
io.write("\\par")
else
io.write("\\hspace{1mm}")
end
end
end
function resize_image(i)
-- i = index of picture in pictures and filenames
fullname = pictures[i]
if( not resize ) then
-- if we do not resize we include the original images
return(fullname)
end
smallfile = tmpdir .. "/" .. filenames[i]
debug_msg("% convert -resize " .. pxl .. " " .. fullname .. " " .. smallfile)
os.execute("convert -resize " .. pxl .. " " .. fullname .. " " .. smallfile)
return(smallfile)
end
function usage()
print("Usage: " .. arg[0] .. " [OPTION] <fullpath to jpg/png>")
msg = [[
Version: 1.1
Options:
-t|--title <txt> Title of the document (default: "Contactsheet")
-c|--count <num> number of pictures per line (default. 4)
-d|--debug turn on debug modus (default: off).
-h|--help print this usage message
-r|--resize turn on resizing pictures to 150 dpi. (default: off)
This script creates a contactsheet.pdf in the current directory. It depends on "lualatex" to create the pdf file.
It expects the full path names to the pictures on the commandline.
If resizing is turned on, the script resizes the thumbs to 150 dpi. This reduces the pdf file size dramatically.
Example:
132 pictures with 20 MBit resolution (mixed landscape and portrait)
7 pages pdf
pdf size without resizing: 376 MB
pdf size with resizing: 5 MB
temp folder for the thumbs: 5 MB
avg. size orig. jpg's: 2.8 MB
avg. size thumbs: 40 kB
resizing took 134 seconds on a i7-2600K CPU @ 3.40GHz
The script stores the resized thumbs in a temporary directory in /tmp. This directory is deleted on exit.
If debug is turned on this directory is not deleted. The script depends on the "convert" tool from the ImageMagick package to do the resizing.
]]
print(msg)
end
function debug_msg(s)
if( debug ) then
print(s)
end
end
-- main loop
pictures = {}
filenames = {}
pcount = 0
i = 1
-- parse commandline
while i <= #arg do
if( arg[i] == "-t" or arg[i] == "--title" ) then
title = arg[i+1];
i=i+1
elseif( arg[i] == "-c" or arg[i] == "--count" ) then
thumbs_per_line = arg[i+1];
w = 1/thumbs_per_line - 0.01;
pxl = math.floor(20/thumbs_per_line / 2.54 * 150)
i=i+1
elseif( arg[i] == "-r" or arg[i] == "--resize" ) then
resize = true
elseif( arg[i] == "-h" or arg[i] == "--help" ) then
usage()
os.exit()
elseif( arg[i] == "-d" or arg[i] == "--debug" ) then
debug = true
else
table.insert(pictures, arg[i])
end
i=i+1
end
-- print global variables
debug_msg("% title= " .. title)
debug_msg("% thumbs_per_line= " .. thumbs_per_line .. "; w= " .. w)
debug_msg("% pxl= " .. pxl)
-- create random directory
if( resize ) then
math.randomseed(os.time())
suffix = math.random(9999999)
tmpdir = "/tmp/lua" .. suffix
debug_msg("% resize= true")
debug_msg("% tmpdir= " .. tmpdir)
os.execute("mkdir -p " .. tmpdir .. " >/dev/null")
else
debug_msg("% resize= false")
end
for k,v in ipairs(pictures) do
-- store filenames
-- remove leading path
t = string.gsub(v, ".*/", "")
table.insert(filenames, t)
debug_msg("% pic " .. k .. "= " .. v .. " = " .. t)
end
-- check for lualatex and exit if it does not exist
if( not os.execute("which lualatex >/dev/null") )then
debug_msg("lualatex not found. Aborting!")
os.exit()
end
-- check for convert and exit if it does not exist
if( resize and not os.execute("which convert >/dev/null") )then
print("convert not found. Please install ImageMagick. Aborting!")
os.exit()
end
-- write tex file to /tmp
basefile = "/tmp/contactsheet"
texfile = basefile .. ".tex"
pdffile = basefile .. ".pdf"
-- output routines
f = io.output(texfile, "w")
io.write(tex_start)
io.write("{\\Large\\bfseries " .. title .. "}\\par\n")
thumbnails()
io.write("\\end{document}")
io.close()
-- excute lualatex to create pdf file
debug_msg("% running lualatex")
os.execute("cd /tmp; lualatex --interaction=batchmode " .. texfile .. "> /dev/null")
-- move pdf to current folder
if( not os.execute("mv " .. pdffile .. " .") ) then
print("Error moving pdf file: " .. pdffile)
end
-- cleanup
if( resize and not debug ) then
os.execute("rm -rf " .. tmpdir)
end
-- end of script
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
darktable-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/darktable-devel