From 59313f2a6089951b2292c25d5c13fdf7d6967487 Mon Sep 17 00:00:00 2001
From: James Bowman <no@email>
Date: Tue, 30 Nov 2010 23:35:03 +0000
Subject: [PATCH] Added lang to sphinx template, linked py to cookbook and cpp
 to cheatseet, #723

---
 doc/core_introduction.tex                 | 42 +++++++++++++++++++++++
 doc/latex2sphinx/_themes/blue/layout.html |  9 ++++-
 doc/latex2sphinx/_themes/blue/theme.conf  |  1 +
 doc/latex2sphinx/buildall                 |  2 +-
 doc/latex2sphinx/conf.py                  |  4 ++-
 5 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/doc/core_introduction.tex b/doc/core_introduction.tex
index 6f1f8049fd..a003c5ec67 100644
--- a/doc/core_introduction.tex
+++ b/doc/core_introduction.tex
@@ -618,4 +618,46 @@ For a 3D array of size $j \times k \times l$, it returns a
 
 Alternatively, use \cross{fromarray} with the \texttt{allowND} option to always return a \cross{cvMatND}.
 
+\subsection{OpenCV to pygame}
+
+To convert an OpenCV image to a \href{http://www.pygame.org/}{pygame} surface:
+
+\begin{lstlisting}
+>>> import pygame.image, cv
+>>> src = cv.LoadImage("lena.jpg")
+>>> src_rgb = cv.CreateMat(src.height, src.width, cv.CV_8UC3)
+>>> cv.CvtColor(src, src_rgb, cv.CV_BGR2RGB)
+>>> pg_img = pygame.image.frombuffer(src_rgb.tostring(), cv.GetSize(src_rgb), "RGB")
+>>> print pg_img
+<Surface(512x512x24 SW)>
+\end{lstlisting}
+
+\subsection{OpenCV and OpenEXR}
+
+Using \href{http://www.excamera.com/sphinx/articles-openexr.html}{OpenEXR's Python bindings} you can make a simple
+image viewer:
+
+\begin{lstlisting}
+import OpenEXR, Imath, cv
+filename = "GoldenGate.exr"
+exrimage = OpenEXR.InputFile(filename)
+
+dw = exrimage.header()['dataWindow']
+(width, height) = (dw.max.x - dw.min.x + 1, dw.max.y - dw.min.y + 1)
+
+def fromstr(s):
+    mat = cv.CreateMat(height, width, cv.CV_32FC1)
+    cv.SetData(mat, s)
+    return mat
+
+pt = Imath.PixelType(Imath.PixelType.FLOAT)
+(r, g, b) = [fromstr(s) for s in exrimage.channels("RGB", pt)]
+
+bgr = cv.CreateMat(height, width, cv.CV_32FC3)
+cv.Merge(b, g, r, None, bgr)
+
+cv.ShowImage(filename, bgr)
+cv.WaitKey()
+\end{lstlisting}
+
 \fi
diff --git a/doc/latex2sphinx/_themes/blue/layout.html b/doc/latex2sphinx/_themes/blue/layout.html
index 4aa67a8a1a..63dbfccda2 100644
--- a/doc/latex2sphinx/_themes/blue/layout.html
+++ b/doc/latex2sphinx/_themes/blue/layout.html
@@ -14,7 +14,14 @@
               <h2>Help and Feedback</h2>
               You did not find what you were looking for?
               <ul>
-                  <li>Try the <a href="faq.html">FAQ</a>.</li>
+                  {% if theme_lang == 'c' %}
+                  {% endif %}
+                  {% if theme_lang == 'cpp' %}
+                    <li>Try the <a href="http://opencv.willowgarage.com/wiki/Welcome?action=AttachFile&do=get&target=opencv_cheatsheet.pdf">Cheatsheet</a>.</li>
+                  {% endif %}
+                  {% if theme_lang == 'py' %}
+                    <li>Try the <a href="cookbook.html">Cookbook</a>.</li>
+                  {% endif %}
                   <li>Ask a question in the <a href="http://tech.groups.yahoo.com/group/OpenCV/">user group/mailing list</a>.</li>
                   <li>If you think something is missing or wrong in the documentation,
                   please file a <a href="https://code.ros.org/trac/opencv/wiki">bug report</a>.</li>
diff --git a/doc/latex2sphinx/_themes/blue/theme.conf b/doc/latex2sphinx/_themes/blue/theme.conf
index dbd8fd8823..b9691ffd39 100644
--- a/doc/latex2sphinx/_themes/blue/theme.conf
+++ b/doc/latex2sphinx/_themes/blue/theme.conf
@@ -29,3 +29,4 @@ feedbacklinkcolor = #ffffff
 
 bodyfont = sans-serif
 headfont = 'Trebuchet MS', sans-serif
+lang = none
diff --git a/doc/latex2sphinx/buildall b/doc/latex2sphinx/buildall
index 422fba593d..1fe8b00228 100644
--- a/doc/latex2sphinx/buildall
+++ b/doc/latex2sphinx/buildall
@@ -10,7 +10,7 @@ for D in $LANGUAGES
 do
   echo $D
   mkdir -p $D
-  cp conf.py $D
+  sed "s/%LANG%/$D/" conf.py > $D/conf.py
   TEXINPUTS=$PWD: sphinx-build -w $D/sphinx.errors -D "lang=$D" -b html -d _build/doctrees/$D $D _build/html/$D
 
   #Insert javascript links to load the Wiki in a frame
diff --git a/doc/latex2sphinx/conf.py b/doc/latex2sphinx/conf.py
index a26aa47ceb..f87b2a1f0e 100644
--- a/doc/latex2sphinx/conf.py
+++ b/doc/latex2sphinx/conf.py
@@ -97,7 +97,9 @@ html_theme = 'blue'
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
-#html_theme_options = {}
+html_theme_options = {
+    "lang" : "%LANG%"   # buildall substitutes this for c, cpp, py
+}
 
 # Add any paths that contain custom themes here, relative to this directory.
 html_theme_path = ['../_themes']
-- 
2.18.0