[gimp-help] Add Recursive Transform filter



commit b29fa936449b4e9490386c0ca48d7e3b88780e40
Author: Julien Hardelin <jhardlin orange fr>
Date:   Sat Mar 2 18:15:48 2019 +0100

    Add Recursive Transform filter

 .../map/recursive_transform-first-orig.png         | Bin 0 -> 8742 bytes
 .../examples/map/recursive_transform-first=2.png   | Bin 0 -> 8670 bytes
 .../examples/map/recursive_transform-origin.png    | Bin 0 -> 9639 bytes
 .../map/recursive_transform-perspect-ctrl.png      | Bin 0 -> 24694 bytes
 .../examples/map/recursive_transform-perspect.png  | Bin 0 -> 26156 bytes
 .../map/recursive_transform-scale-ctrl.png         | Bin 0 -> 10303 bytes
 .../examples/map/recursive_transform-scale-no.png  | Bin 0 -> 10538 bytes
 .../examples/map/recursive_transform-scale.png     | Bin 0 -> 10113 bytes
 .../examples/map/recursive_transform-shear.png     | Bin 0 -> 24640 bytes
 .../C/filters/map/recursive-transform-dialog.png   | Bin 0 -> 26715 bytes
 images/C/toolbox/unified-transform.png             | Bin 173344 -> 89468 bytes
 src/filters/map.xml                                |   4 +-
 src/filters/map/panorama-projection.xml            |   3 +-
 src/filters/map/recursive-transform.xml            | 263 +++++++++++++++++++++
 14 files changed, 267 insertions(+), 3 deletions(-)
---
diff --git a/images/C/filters/examples/map/recursive_transform-first-orig.png 
b/images/C/filters/examples/map/recursive_transform-first-orig.png
new file mode 100644
index 000000000..aa25fad78
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-first-orig.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-first=2.png 
b/images/C/filters/examples/map/recursive_transform-first=2.png
new file mode 100644
index 000000000..c988b7ba1
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-first=2.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-origin.png 
b/images/C/filters/examples/map/recursive_transform-origin.png
new file mode 100644
index 000000000..48e983268
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-origin.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-perspect-ctrl.png 
b/images/C/filters/examples/map/recursive_transform-perspect-ctrl.png
new file mode 100644
index 000000000..82feefd70
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-perspect-ctrl.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-perspect.png 
b/images/C/filters/examples/map/recursive_transform-perspect.png
new file mode 100644
index 000000000..aa82cffa5
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-perspect.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-scale-ctrl.png 
b/images/C/filters/examples/map/recursive_transform-scale-ctrl.png
new file mode 100644
index 000000000..334f0dd5f
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-scale-ctrl.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-scale-no.png 
b/images/C/filters/examples/map/recursive_transform-scale-no.png
new file mode 100644
index 000000000..b96a686b8
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-scale-no.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-scale.png 
b/images/C/filters/examples/map/recursive_transform-scale.png
new file mode 100644
index 000000000..67f83f2e0
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-scale.png differ
diff --git a/images/C/filters/examples/map/recursive_transform-shear.png 
b/images/C/filters/examples/map/recursive_transform-shear.png
new file mode 100644
index 000000000..50fec9b4e
Binary files /dev/null and b/images/C/filters/examples/map/recursive_transform-shear.png differ
diff --git a/images/C/filters/map/recursive-transform-dialog.png 
b/images/C/filters/map/recursive-transform-dialog.png
new file mode 100644
index 000000000..52d23aa4d
Binary files /dev/null and b/images/C/filters/map/recursive-transform-dialog.png differ
diff --git a/images/C/toolbox/unified-transform.png b/images/C/toolbox/unified-transform.png
index 3cb15a8e4..917377036 100644
Binary files a/images/C/toolbox/unified-transform.png and b/images/C/toolbox/unified-transform.png differ
diff --git a/src/filters/map.xml b/src/filters/map.xml
index 3f6201e69..3b6fc4d5f 100644
--- a/src/filters/map.xml
+++ b/src/filters/map.xml
@@ -2,7 +2,8 @@
 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
                        "http://www.docbook.org/xml/4.3/docbookx.dtd";>
 <!-- section history:
-  2019-02-21 j.h: add panorama-projection
+  2019-02-24 j.h: add recursive-transform.xml
+  2019-02-21 j.h: add panorama-projection.xml
   2019-02-18 j.h: add little-planet.xml
   2007-08-08 ude: moved Van Gogh (LIC) to artistic filters
   2005-10-05 created by julien hardelin
@@ -16,6 +17,7 @@
   <xi:include href="map/illusion.xml"/>
   <xi:include href="map/little-planet.xml"/>
   <xi:include href="map/panorama-projection.xml"/>
+  <xi:include href="map/recursive-transform.xml"/>
   <xi:include href="map/make-seamless.xml"/>
   <xi:include href="map/map-object.xml"/>
   <xi:include href="map/papertile.xml"/>
diff --git a/src/filters/map/panorama-projection.xml b/src/filters/map/panorama-projection.xml
index bc15a75a9..5c4c5dcf3 100644
--- a/src/filters/map/panorama-projection.xml
+++ b/src/filters/map/panorama-projection.xml
@@ -5,8 +5,7 @@
   2019-02-21 j.h: create
 -->
 
-<sect2 xmlns:xi="http://www.w3.org/2001/XInclude"; 
-  id="gimp-filter-panorama-projection">
+<sect2 xmlns:xi="http://www.w3.org/2001/XInclude"; id="gimp-filter-panorama-projection">
   <title>Panorama Projection</title>
 
   <indexterm>
diff --git a/src/filters/map/recursive-transform.xml b/src/filters/map/recursive-transform.xml
new file mode 100644
index 000000000..93c267bc6
--- /dev/null
+++ b/src/filters/map/recursive-transform.xml
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sect2 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+                       "http://www.docbook.org/xml/4.3/docbookx.dtd";>
+<!-- section history:
+  2019-02-24 j.h: create
+-->
+
+<sect2 xmlns:xi="http://www.w3.org/2001/XInclude"; 
+  id="gimp-filter-recursive-transform">
+  <title>Recursive Transform</title>
+
+  <indexterm>
+    <primary>Filters</primary>
+    <secondary>Map</secondary>
+    <tertiary>Recursive Transform</tertiary>
+  </indexterm>
+  <indexterm>
+    <primary>Recursive Transform</primary>
+  </indexterm>
+
+  <sect3>
+    <title>Overview</title>
+    <para>
+      This filter applies a transformation recursively.
+    </para>
+    <mediaobject>
+      <imageobject>
+        <imagedata format="PNG"
+          fileref="images/filters/examples/map/recursive_transform-origin.png"/>
+      </imageobject>
+    </mediaobject>
+    <para>
+      As in Unified Transform tool, this filter display a frame around the 
+      image with several kind of handles:
+      <itemizedlist>
+        <listitem>
+          <para>
+            <guiicon><inlinegraphic 
+              fileref="images/toolbox/shear-icon.png"/></guiicon>
+            Diamonds for shearing
+          </para>
+          <mediaobject>
+            <imageobject>
+              <imagedata format="PNG"
+                fileref="images/filters/examples/map/recursive_transform-shear.png"/>
+            </imageobject>
+            <caption>
+              <para>
+                Shear
+              </para>
+            </caption>
+          </mediaobject>
+        </listitem>
+        <listitem>
+          <para>
+            <guiicon><inlinegraphic 
+              fileref="images/toolbox/scale-icon.png"/></guiicon>
+            Squares for scaling horizontally or vertically.
+          </para>
+          <mediaobject>
+            <imageobject>
+              <imagedata format="PNG"
+                fileref="images/filters/examples/map/recursive_transform-scale.png"/>
+            </imageobject>
+            <caption>
+              <para>
+                Scale horizontally
+              </para>
+            </caption>
+          </mediaobject>
+        </listitem>
+        <listitem>
+          <para>
+            <guiicon><inlinegraphic 
+              fileref="images/toolbox/perspective-icon.png"/></guiicon>
+            Small diamonds for changing perspective, in large squares for 
+            Scaling in all directions.
+          </para>
+          <figure>
+            <title>Changing perspective</title>
+            <mediaobject>
+              <imageobject>
+                <imagedata format="PNG"
+  fileref="images/filters/examples/map/recursive_transform-perspect.png"/>
+              </imageobject>
+              <caption>
+                <para>
+                  Change perspective
+                </para>
+              </caption>
+            </mediaobject>
+            <mediaobject>
+            <imageobject>
+              <imagedata format="PNG"
+  fileref="images/filters/examples/map/recursive_transform-perspect-ctrl.png"/>
+            </imageobject>
+            <caption>
+              <para>
+                The same pressing <keycap>Ctrl</keycap>
+              </para>
+            </caption>
+          </mediaobject>
+        </figure>
+        <figure>
+            <title>Scaling in all directions</title>
+            <mediaobject>
+              <imageobject>
+                <imagedata format="PNG"
+  fileref="images/filters/examples/map/recursive_transform-scale-no.png"/>
+              </imageobject>
+              <caption>
+                <para>
+                  Scaling
+                </para>
+              </caption>
+            </mediaobject>
+            <mediaobject>
+            <imageobject>
+              <imagedata format="PNG"
+  fileref="images/filters/examples/map/recursive_transform-scale-ctrl.png"/>
+            </imageobject>
+            <caption>
+              <para>
+                The same pressing <keycap>Ctrl</keycap>
+              </para>
+            </caption>
+          </mediaobject>
+        </figure>
+        </listitem>
+      </itemizedlist>
+      and outside the frame, the mouse pointer comes with a rotation icon: 
+      click-and-drag to rotate around the pivot. This pivot is, by default, 
+      at the center of the image: click-and-drag to move it.
+    </para>
+  </sect3>
+
+  <sect3>
+    <title>Activate the filter</title>
+    <para>
+      This filter is found in the image window menu under
+      <menuchoice>
+        <guimenu>Filters</guimenu>
+        <guisubmenu>Map</guisubmenu>
+        <guimenuitem>Recursive Transform…</guimenuitem>
+      </menuchoice>.
+    </para>
+  </sect3>
+
+  <sect3>
+    <title>Options</title>
+    <figure>
+      <title><quote>Recursive Transform</quote> filter options</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata format="PNG"
+            fileref="images/filters/map/recursive-transform-dialog.png"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+    <variablelist>
+      <varlistentry>
+        <term>Presets, Preview, Split view</term>
+        <listitem>
+          <xi:include href="../about-common-features.xml"/>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>First iteration</term>
+        <listitem>
+          <para>
+            This option is used when the number of iterations has been set. 
+            Then the transformation starts at the position determined by this 
+            option.
+          </para>
+          <figure>
+            <title><quote>Recursive Transform</quote> filter options</title>
+            <mediaobject>
+              <imageobject>
+                <imagedata format="PNG"
+      fileref="images/filters/examples/map/recursive_transform-first-orig.png"/>
+              </imageobject>
+              <caption>
+                <para>
+                  Original image. Iterations = 3. Fade = 0.797
+                </para>
+              </caption>
+            </mediaobject>
+            <mediaobject>
+              <imageobject>
+                <imagedata format="PNG"
+      fileref="images/filters/examples/map/recursive_transform-first=2.png"/>
+              </imageobject>
+              <caption>
+                <para>
+                  First Iteration = 2
+                </para>
+              </caption>
+            </mediaobject>
+          </figure>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Iterations</term>
+        <listitem>
+          <para>
+            Number of iterations.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Fade color</term>
+        <listitem>
+          <para>
+            The color that will be used to fade. Default is transparency. You 
+            can change this color selecting a new color by clicking in the 
+            color swatch or using the color picker on the right.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Fade opacity</term>
+        <listitem>
+          <para>
+            Amount by which to scale opacity of each iterated image.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Paste below</term>
+        <listitem>
+          <para>
+            Paste iterated images below each other.
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Resampling method</term>
+        <listitem>
+          <para>
+            Interpolation methods are described in 
+            <xi:include href="../about-common-features.xml"/>
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>Three buttons</term>
+        <listitem>
+          <para>
+            To add, duplicate or remove transform.
+          </para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </sect3>
+  
+  <sect3>
+    <title>Using Recursive Transform Filter</title>
+    <!--TODO later: to much difficult to perform-->
+    <para>
+      You can use this filter to create a Droste effect, 3D effects, trees.
+    </para>
+  </sect3>
+</sect2>
\ No newline at end of file


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]