Ver código fonte

update website and pad file

Juliette ELSASS 3 meses atrás
pai
commit
8a3fdadbb8

+ 2 - 0
.gitignore

@@ -38,3 +38,5 @@ lazpaint/release/windows/lazpaint*_no_install.zip
 lazpaint/release/bin/i18n/lazpaint64.pot
 lazpaint/release/windows/libavif/
 web/.hugo_build.lock
+
+web/hugo.exe

+ 2 - 2
lazpaint/release/stable/latest.txt

@@ -1,2 +1,2 @@
-7.2.2
-lang_update=tr
+7.3
+lang_update=

+ 8 - 8
lazpaint/release/stable/pad_file.xml

@@ -34,10 +34,10 @@
 	</Company_Info>
 	<Program_Info>
 		<Program_Name>LazPaint</Program_Name>
-		<Program_Version>7.2.2</Program_Version>
-		<Program_Release_Month>08</Program_Release_Month>
-		<Program_Release_Day>23</Program_Release_Day>
-		<Program_Release_Year>2022</Program_Release_Year>
+		<Program_Version>7.3</Program_Version>
+		<Program_Release_Month>05</Program_Release_Month>
+		<Program_Release_Day>26</Program_Release_Day>
+		<Program_Release_Year>2025</Program_Release_Year>
 		<Program_Cost_Dollars />
 		<Program_Cost_Other_Code />
 		<Program_Cost_Other />
@@ -51,9 +51,9 @@
 		<Program_Category_Class>Graphic Apps::Editors</Program_Category_Class>
 		<Program_System_Requirements>Pentium, 32-bit processor, 200 Mbytes RAM</Program_System_Requirements>
 		<File_Info>
-			<File_Size_Bytes>13800439</File_Size_Bytes>
-			<File_Size_K>13477</File_Size_K>
-			<File_Size_MB>13.2</File_Size_MB>
+			<File_Size_Bytes>14153628</File_Size_Bytes>
+			<File_Size_K>13821</File_Size_K>
+			<File_Size_MB>13.5</File_Size_MB>
 		</File_Info>
 		<Expire_Info>
 			<Has_Expire_Info>N</Has_Expire_Info>
@@ -116,7 +116,7 @@
 			<Application_XML_File_URL>https://gitcdn.link/repo/bgrabitmap/lazpaint/master/lazpaint/release/stable/pad_file.xml</Application_XML_File_URL>
 		</Application_URLs>
 		<Download_URLs>
-			<Primary_Download_URL>https://github.com/bgrabitmap/lazpaint/releases/download/v7.2.2/lazpaint7.2.2_setup_win32_win64.exe</Primary_Download_URL>
+			<Primary_Download_URL>https://github.com/bgrabitmap/lazpaint/releases/download/v7.3/lazpaint7.3_setup_win32_win64.exe</Primary_Download_URL>
 			<Secondary_Download_URL />
 			<Additional_Download_URL_1 />
 			<Additional_Download_URL_2 />

+ 2 - 2
web/config.toml

@@ -29,7 +29,7 @@ disableKinds = ["taxonomy"]
     weight = 6
 
 [permalinks]
-  blog = "/:filename/"
+  blog = "/:contentbasename/"
 
 # See https://feathericons.com/
 # The value of pre is the icon name
@@ -44,7 +44,7 @@ disableKinds = ["taxonomy"]
     weight = 2
    [[menu.main]]
     name = "documentation"
-    url = "https://wiki.freepascal.org/LazPaint"
+    url = "/documentation/"
     weight = 3
    [[menu.main]]
     name = "download"

+ 8 - 0
web/content/documentation.de.md

@@ -0,0 +1,8 @@
+---
+title: "documentation"
+date: 2025-05-26T13:16:33+02:00
+draft: false
+type: "page"
+layout: "documentation"
+---
+

+ 8 - 0
web/content/documentation.es.md

@@ -0,0 +1,8 @@
+---
+title: "documentation"
+date: 2025-05-26T13:34:03+02:00
+draft: false
+type: "page"
+layout: "documentation"
+---
+

+ 8 - 0
web/content/documentation.fi.md

@@ -0,0 +1,8 @@
+---
+title: "documentation"
+date: 2025-05-26T13:41:08+02:00
+draft: false
+type: "page"
+layout: "documentation"
+---
+

+ 8 - 0
web/content/documentation.fr.md

@@ -0,0 +1,8 @@
+---
+title: "documentation"
+date: 2025-05-26T12:29:53+02:00
+draft: false
+type: "page"
+layout: "documentation"
+---
+

+ 8 - 0
web/content/documentation.md

@@ -0,0 +1,8 @@
+---
+title: "documentation"
+date: 2025-05-26T12:29:51+02:00
+draft: false
+type: "page"
+layout: "documentation"
+---
+

+ 8 - 0
web/content/documentation.ru.md

@@ -0,0 +1,8 @@
+---
+title: "documentation"
+date: 2025-05-26T13:47:57+02:00
+draft: false
+type: "page"
+layout: "documentation"
+---
+

+ 15 - 19
web/layouts/index.html

@@ -11,11 +11,10 @@
    {{ $link_linux64_qt5_no_install := printf "%s_linux64_qt5_no_install.tar.gz" $prefix -}}
    {{ $link_linux32_qt5_deb := printf "%s_linux32_qt5.deb" $prefix -}}
    {{ $link_linux64_qt5_deb := printf "%s_linux64_qt5.deb" $prefix -}}
-   {{ $link_rpi32_no_install := printf "%s_raspbian-hf_no_install.tar.gz" $prefix -}}
-   {{ $link_rpi64_no_install := printf "%s_raspbian64_no_install.tar.gz" $prefix -}}
-   {{ $link_rpi32_deb := printf "%s_raspbian-hf.deb" $prefix -}}
-   {{ $link_rpi64_deb := printf "%s_raspbian64.deb" $prefix -}}
-   {{ $link_freebsd64_no_install := printf "%s_freebsd64_no_install.tar.gz" $prefix -}}
+   {{ $link_linux64_app_image := printf "%s_x86_64.AppImage" $prefix -}}
+   {{ $link_arm32_no_install := printf "%s_linux_arm32_gtk2_no_install.zip" $prefix -}}
+   {{ $link_aarch64_no_install := printf "%s_linux_aarch64_gtk2_no_install.zip" $prefix -}}
+   {{ $link_freebsd64_no_install := printf "%s_freebsd64_gtk2_no_install.zip" $prefix -}}
    {{ $link_macos32_dmg := printf "%s_macos32.dmg" $prefix -}}
    {{ $link_macos64_dmg := printf "%s_macos64.dmg" $prefix -}}
    {{ $link_macos_brew := "https://formulae.brew.sh/cask/lazpaint" }}
@@ -35,31 +34,28 @@
                     ({{ i18n "no_install" }})</a>
                 <a class="button" href="{{$link_win64_no_install}}">{{ printf (i18n "archive") (i18n "bit_64") }}
                     ({{ i18n "no_install" }})</a>
-                <a href="https://portableapps.com/apps/graphics_pictures/lazpaint-portable" class="button">Portable ({{ i18n "bit_32_and_64" }})</a></p>
+                <!--<a href="https://portableapps.com/apps/graphics_pictures/lazpaint-portable" class="button">Portable ({{ i18n "bit_32_and_64" }})</a>--></p>
           </div>
           <div id="Linux">
             <h2>Linux</h2>
-            <p><a class="button" href="{{$link_linux32_deb}}">{{ printf (i18n "deb_package") (i18n "bit_32") }}
-                    </a>
+            <p><!--<a class="button" href="{{$link_linux32_deb}}">{{ printf (i18n "deb_package") (i18n "bit_32") }}
+                    </a>-->
                 <a class="button" href="{{$link_linux64_deb}}">{{ printf (i18n "deb_package") (i18n "bit_64") }}
                     </a>
-                <a class="button" href="{{$link_linux32_no_install}}">{{ printf (i18n "archive") (i18n "bit_32") }}
-                    ({{ i18n "no_install" }})</a>
+                <!--<a class="button" href="{{$link_linux32_no_install}}">{{ printf (i18n "archive") (i18n "bit_32") }}
+                    ({{ i18n "no_install" }})</a>-->
                 <a class="button" href="{{$link_linux64_no_install}}">{{ printf (i18n "archive") (i18n "bit_64") }}
                     ({{ i18n "no_install" }})</a></p>
+				<a class="button" href="{{$link_linux64_app_image}}">AppImage {{ printf (i18n "bit_64") }}</a></p>
             <h2>Linux (Qt5)</h2>
             <p><a class="button" href="{{$link_linux64_qt5_deb}}">Qt5 {{ printf (i18n "deb_package") (i18n "bit_64") }}
                     </a>
                 <a class="button" href="{{$link_linux64_qt5_no_install}}">Qt5 {{ printf (i18n "archive") (i18n "bit_64") }}
                     ({{ i18n "no_install" }})</a></p>
-            <h2>Rpi</h2>
-            <p><a class="button" href="{{$link_rpi32_deb}}">{{ printf (i18n "deb_package") (i18n "bit_32") }}
-                    </a>
-                <a class="button" href="{{$link_rpi64_deb}}">{{ printf (i18n "deb_package") (i18n "bit_64") }}
-                    </a>
-                <a class="button" href="{{$link_rpi32_no_install}}">{{ printf (i18n "archive") (i18n "bit_32") }}
+            <h2>Linux ARM</h2>
+            <p><a class="button" href="{{$link_arm32_no_install}}">{{ printf (i18n "archive") (i18n "bit_32") }}
                     ({{ i18n "no_install" }})</a>
-                <a class="button" href="{{$link_rpi64_no_install}}">{{ printf (i18n "archive") (i18n "bit_64") }}
+                <a class="button" href="{{$link_aarch64_no_install}}">{{ printf (i18n "archive") (i18n "bit_64") }}
                     ({{ i18n "no_install" }})</a></p>
           </div>
           <div id="UNIX">
@@ -69,8 +65,8 @@
           </div>
           <div id="MacOS">
             <h2>MacOS</h2>
-            <p><a class="button" href="{{$link_macos32_dmg}}">MacOS
-                    {{ i18n "bit_32" }}</a>
+            <p><!--<a class="button" href="{{$link_macos32_dmg}}">MacOS
+                    {{ i18n "bit_32" }}</a>-->
                 <a class="button" href="{{$link_macos64_dmg}}">MacOS
                     {{ i18n "bit_64" }}</a>
                 <a class="button" href="{{$link_macos_brew}}">MacOS

Diferenças do arquivo suprimidas por serem muito extensas
+ 108 - 0
web/layouts/page/documentation.de.html


Diferenças do arquivo suprimidas por serem muito extensas
+ 108 - 0
web/layouts/page/documentation.es.html


Diferenças do arquivo suprimidas por serem muito extensas
+ 108 - 0
web/layouts/page/documentation.fi.html


+ 169 - 0
web/layouts/page/documentation.fr.html

@@ -0,0 +1,169 @@
+{{ partial "header.html" . }}
+<main id="main" class="doc">
+
+<div>
+    <a class="button" href="#interface">Présentation de l’interface</a>
+    <a class="button" href="#tools">Outils de base</a>
+    <a class="button" href="#selection">Outils de sélection</a>
+    <a class="button" href="#layers">Calques</a>
+    <a class="button" href="#transforms">Transformations</a>
+    <a class="button" href="#colors">Réglages couleur</a>
+    <a class="button" href="#filters">Filtres & effets</a>
+    <a class="button" href="#advanced">Fonctions avancées</a>
+    <a class="button" href="#shortcuts">Raccourcis clavier</a>
+    <a class="button" href="#faq">FAQ</a>
+    <a class="button" href="#resources">Ressources utiles</a>
+</div>
+
+<div class="large-columns"><h2 id="interface">Présentation de l’interface</h2>
+<p>LazPaint propose une interface hybride, à la fois fenêtrée unique et multi‑fenêtres, centrée sur la zone de dessin. La boîte à outils, le sélecteur de couleurs et la pile de calques peuvent être détachés en panneaux flottants. Chacun de ces panneaux peut être affiché ou masqué via le menu <em>Affichage</em> (ou en pressant <strong>F6</strong> pour tout afficher/cacher d’un coup). Un thème sombre est disponible si vous préférez travailler sur fond foncé. Les menus rappellent ceux des autres éditeurs d’images&nbsp;: Fichier, Édition, Sélection, Affichage, Image, Couleurs, Outils, Filtre, Rendu, Script, Aide. Les actions courantes sont aussi accessibles via une barre d’icônes. En bas, la barre d’état affiche des infos contextuelles (astuces sur l’outil, dimensions de la sélection, etc.). Bref, l’interface est pensée pour être familière et facile à prendre en main.</p>
+{{ $img := "img/lazpaint-interface.png" | relURL -}}
+<center><img src="{{ $img }}" style="width: 50em; max-width: 100%" alt="Interface LazPaint" /></center></div>
+
+<div class="columns"><h2 id="tools">Outils de base</h2>
+<p>LazPaint propose une large palette d’outils de dessin et d’édition, accessibles depuis la boîte à outils verticale (généralement à gauche de l’écran). Voici un aperçu des principaux outils et de leur usage&nbsp;:</p>
+<ul>
+  <li><strong>Pinceau / Crayon&nbsp;:</strong> outil de dessin libre qui peint sur la toile avec la couleur sélectionnée. Vous pouvez choisir la forme et la taille de la brosse (voire charger des images de brosse personnalisées). La brosse peut être adoucie (dégradé d’opacité) pour des bords lisses. Parfait pour tracer lignes et coups de pinceau.</li>
+  <li><strong>Gomme&nbsp;:</strong> efface des zones de l’image ; les pixels deviennent transparents (damier). La gomme peut fonctionner en différents modes&nbsp;: éclaircir, assombrir, etc., au lieu d’effacer totalement, pour des effets de fusion spéciaux. Ajustez sa taille et son opacité selon le besoin, idéal pour supprimer des éléments ou fondre doucement des bords.</li>
+  <li><strong>Pot de peinture&nbsp;:</strong> remplit une zone contiguë avec la couleur de premier plan. Cliquez sur une région : la couleur de cette zone (dans la tolérance fixée) est remplacée par la couleur de remplissage. Parfait pour colorier formes ou arrière-plans. Réglez la tolérance pour définir la similitude requise entre pixels (plus la tolérance est élevée, plus la plage de couleurs acceptées est large). Le mode Progressif, activable dans la barre d’outils, fait évoluer la couleur au fur et à mesure que celle du point initial change.</li>
+  <li><strong>Outils Forme&nbsp;:</strong> permettent de tracer des formes vectorielles (rectangles, ellipses, polygones, courbes). Chaque forme crée un objet ou calque vectoriel éditable (déplacement/redimensionnement sans perte). Pour un rectangle ou une ellipse, cliquez-glissez ; maintenez <strong>Shift</strong> pour un carré ou cercle parfait. Polygone&nbsp;/ polyligne&nbsp;: cliquez plusieurs points pour des segments droits (<strong>Retour arrière</strong> retire le dernier point). Pour les courbes de type Bézier, cliquez les points clefs ; la courbe s’y adapte ; pressez <strong>S</strong> pour un point arrondi ou <strong>X</strong> pour un angle. Pour terminer un polygone ou une courbe, faites un clic droit ou cliquez à nouveau le premier point. Vous pouvez remplir la forme par couleur unie, dégradé ou texture et lui appliquer contour ou ombre (voir <a href="#advanced">Fonctions avancées</a>).</li>
+  <li><strong>Outil Texte&nbsp;:</strong> insère du texte. Cliquez sur la toile pour définir la zone et tapez. Choisissez police, taille, style, alignement, couleur. Le texte est un objet vectoriel, donc ré-éditable à volonté. LazPaint gère des effets spéciaux (contour, ombrage Phong) via la barre d’outils. <strong>Esc</strong> termine l’édition ; <strong>Entrée</strong> ajoute un paragraphe (marge verticale) ; <strong>Shift+Entrée</strong> insère un simple saut de ligne.</li>
+  <li><strong>Pipette (Color Picker)&nbsp;:</strong> échantillonne une couleur de l’image. Cliquez (ou maintenez) sur un pixel pour placer sa couleur dans l’emplacement principal (« Stylo »). Un clic alternatif (par ex. clic droit) place la couleur secondaire (« Arrière-plan »). Pratique pour assortir des couleurs existantes. Raccourci rapide&nbsp;: <strong>C</strong>.</li>
+  <li><strong>Tampon de clonage&nbsp;:</strong> outil de retouche qui copie des pixels d’une zone vers une autre (utile pour effacer des imperfections ou dupliquer un élément). Faites d’abord un <strong>clic droit</strong> sur la zone source, puis peignez (clic gauche) là où vous voulez copier. La source se déplace avec le pinceau. Pour changer la source, clic droit ailleurs. Fonctionne aussi entre calques ; assurez-vous d’avoir le bon calque actif.</li>
+  <li><strong>Outils de sélection&nbsp;:</strong> (détaillés dans la section <a href="#selection">Outils de sélection</a>) — rectangle, ellipse, lasso libre, polygone, baguette magique. Une fois la sélection faite, les autres outils n’affectent que cette zone. Les sélections peuvent être inversées ou modifiées.</li>
+  <li><strong>Outil Déplacement&nbsp;:</strong> déplace la sélection ou le contenu du calque actif. Après avoir sélectionné une zone, choisissez l’outil et faites glisser. Si tout un calque est sélectionné, il est déplacé. Indispensable pour organiser une composition.</li>
+  <li><strong>Main (Panoramique)&nbsp;:</strong> icône main ; permet de faire défiler la vue sans modifier l’image. Cliquez-glissez pour déplacer. Utile en fort zoom. Vous pouvez aussi démarrer le déplacement d’une forme ou d’un calque en cliquant dessus. Inutile de changer souvent d’outil : maintenez <strong>Espace</strong> pour activer temporairement la main, puis relâchez pour revenir à l’outil précédent.</li>
+  <li><strong>Contrôle du zoom&nbsp;:</strong> icônes loupe +/–, molette de souris pour zoomer ; maintenir <strong>Ctrl</strong> pour un pas plus fin. Boutons 100 % (taille réelle) et « Ajuster à la fenêtre ». Le zoom n’altère pas l’image, seulement l’affichage. La barre d’outils indique le niveau de zoom et les coordonnées du curseur, pratiques pour travailler avec précision.</li>
+</ul>
+<p>La plupart des outils affichent une barre d’options contextuelle (opacité, taille, tolérance, etc.). Pensez à la vérifier pour obtenir l’effet désiré. Avec un peu de pratique, ces outils permettent aussi bien des dessins simples que des retouches complexes.</p></div>
+
+<div class="columns"><h2 id="selection">Outils de sélection</h2>
+<p>Les outils de sélection permettent de définir et de travailler sur une zone précise de l’image. LazPaint gère les sélections lissées (bords anti-alias) et la semi-sélection ; vous pouvez même modifier la sélection comme un masque. Le contenu sélectionné se comporte comme un calque temporaire : une zone semi-sélectionnée est dessinée en semi-opacité. Les principaux outils sont :</p>
+<ul>
+   <li><strong>Sélection rectangulaire & elliptique :</strong> cliquez-glissez pour sélectionner un rectangle ou une ellipse. Le contour apparaît biseauté, surligné en bleu. Maintenez <strong>Shift</strong> pour forcer un carré ou un cercle. Idéal pour sélectionner rapidement de grandes zones, des bordures ou des formes rondes.</li>
+   <li><strong>Sélection polygonale :</strong> semblable au lasso, mais par segments droits. Cliquez pour placer les sommets ; une ligne relie chaque point. Parfait pour des formes irrégulières à arêtes droites. <strong>Retour arrière</strong> retire le dernier point. Pour terminer, cliquez le point de départ ou faites un clic droit pour fermer automatiquement le polygone.</li>
+   <li><strong>Sélection courbe :</strong> même principe que la sélection polygonale, mais avec des courbes de type Bézier qui s’adaptent aux points.</li>
+   <li><strong>Baguette magique :</strong> sélection par similarité de couleur. Cliquez sur un pixel : l’outil choisit tous les pixels voisins de couleur proche (tolérance réglable dans les options). Parfait pour un fond uni ou toute zone de couleur homogène. Avec l’option « Progressif », le bord est antialiasé ou semi-sélectionné.</li>
+   <li><strong>Stylo de sélection :</strong> LazPaint permet aussi de peindre directement le masque de sélection : l’aire sélectionnée apparaît en superposition translucide. Très précis pour des sélections complexes ; méthode avancée mais puissante.</li>
+   <li><strong>Éditer la sélection :</strong> un « éditeur de sélection » dédié (menu Éditer la sélection) affiche la sélection en niveaux de gris (blanc = sélectionné, noir = non sélectionné, gris = semi-sélection).</li>
+</ul>
+<p>Une fois la sélection faite, les autres opérations n’affectent que cette zone. Vous pouvez aussi déplacer ou transformer la sélection elle-même : choisissez l’outil Déplacer pour la faire glisser. Diverses transformations sont proposées dans le menu Sélection. Si vous devez ajuster la transformation, mieux vaut coller la zone dans un nouveau calque et utiliser les transformations de calque. <strong>Esc</strong> annule la transformation courante ; <strong>Entrée</strong> désélectionne (« libère » la sélection en la fusionnant sur le calque actif).</p>
+<p>Vous pouvez affiner une sélection existante en ajoutant ou retranchant des zones ; particularité de LazPaint : le clic droit retranche directement de la sélection sans changer d’outil, ce qui rend la retouche très rapide. N’oubliez pas qu’un filtre ou un coup de pinceau n’agira que dans le périmètre de la sélection active.</p></div>
+
+<div class="columns"><h2 id="layers">Gestion des calques</h2>
+<p>À l’instar des éditeurs avancés, LazPaint prend en charge plusieurs calques dans une même image. Le panneau <strong>Calques</strong> affiche tous les calques empilés comme des feuilles transparentes. Depuis la barre d’outils ou le menu Calque, vous pouvez ajouter un calque, dupliquer, supprimer ou réorganiser par glisser-déposer. Chaque calque possède une case à cocher pour la visibilité, un curseur pour l’opacité et un menu déroulant pour le mode de fusion (par défaut « Normal »). Les modes de fusion (Multiplier, Additif, etc.) permettent de mélanger les calques de diverses façons, certaines uniques à LazPaint. Grâce aux calques, vous modifiez des parties de l’image séparément, sans altérer le reste&nbsp;: c’est l’édition non destructive.</p>
+<p>LazPaint gère les calques <em>raster</em> et <em>vectoriels</em> dans le même fichier. Un calque raster est un bitmap classique, tandis qu’un calque vectoriel contient formes ou texte éditables. Par exemple, avec l’outil Forme ou Texte, l’objet reste vectoriel et vous pouvez le retoucher plus tard (changer le texte, redessiner la courbe). Si vous transformez le calque, l’objet est re-rendu proprement. Dès que vous utilisez un outil pixel (pinceau, gomme…) sur ce calque, LazPaint le rasterise : les formes deviennent pixels et ne sont plus éditables comme vecteurs. Le processus est automatique&nbsp;; souvenez-vous seulement qu’un coup de pinceau convertit le calque vectoriel en calque raster.</p>
+<p>Opérations de base&nbsp;:</p>
+<ul>
+	<li><strong>Renommer&nbsp;:</strong> cliquez sur le nom pour le modifier (pratique pour s’y retrouver).</li>
+	<li><strong>Réordre&nbsp;:</strong> faites glisser les calques pour changer leur position dans la pile.</li>
+	<li><strong>Opacité&nbsp;:</strong> réglez la transparence (0 % = invisible, 100 % = opaque).</li>
+	<li><strong>Mode de fusion&nbsp;:</strong> choisissez la façon dont il se combine avec ceux du dessous (Multiplier, Écran, etc.). Cliquez sur le bouton mode pour une palette visuelle ou utilisez la liste.</li>
+	<li><strong>Nouveau / Supprimer&nbsp;:</strong> ajoutez un calque (vide ou collage) ou supprimez le calque sélectionné.</li>
+</ul>
+<p>Vous disposez aussi des commandes <strong>Aplatir</strong> (fusionner tous les calques en un seul, utile avant d’exporter vers un format sans calques) et <strong>Fusionner vers le bas</strong> (combiner le calque courant avec celui juste en dessous). L’aplatissement élimine les calques masqués et produit une image simple. Pour conserver le travail en cours, enregistrez au format natif <code>.LZP</code>, qui garde calques, transparence et métadonnées. Vous pourrez ensuite exporter en PNG ou JPG pour le partage. LazPaint sait aussi enregistrer en OpenRaster <code>.ORA</code>, ouvrable dans d’autres logiciels (Krita, GIMP…). Il importe également les fichiers Paint.NET (<code>.pdn</code>). En somme, les calques figurent parmi les atouts majeurs de LazPaint : servez-vous-en pour séparer croquis, aplats, ombres, etc., et les éditer indépendamment.</p></div>
+
+<div class="columns"><h2 id="transforms">Transformations</h2>
+<p>LazPaint propose de nombreuses commandes pour transformer l’image ou les calques. Les opérations courantes se trouvent dans le menu <em>Image</em> ou la barre <em>Calque</em>. Vous pouvez par exemple faire pivoter l’image entière de 90° dans un sens ou dans l’autre, ou la retourner horizontalement / verticalement. Si vous travaillez avec la commande de calque, seule la couche sélectionnée est affectée. Des outils interactifs permettent également de pivoter selon n’importe quel angle ou de redimensionner.</p>
+<p><strong>Mise à l’échelle / Redimensionnement&nbsp;:</strong> pour redimensionner l’image complète, utilisez <em>Image › Rééchantillonner</em> et saisissez les nouvelles dimensions. LazPaint emploie des algorithmes de rééchantillonnage afin de préserver la qualité lors d’un agrandissement ou d’une réduction. La fonction <em>Taille du canevas</em> permet quant à elle d’agrandir ou de rogner la zone de travail sans déformer le contenu (pratique pour ajouter une bordure ou couper des bords). Pour redimensionner un calque ou une sélection particulière, servez-vous de l’outil de transformation de sélection ou copiez la sélection dans une nouvelle image, redimensionnez, puis collez de nouveau.</p>
+<p><strong>Rotation&nbsp;:</strong> pour pivoter rapidement de 90°, utilisez les commandes du menu. Pour une rotation libre, sélectionnez le calque (ou la sélection) puis l’outil Rotation ; un cadre apparaît et vous pouvez faire tourner en faisant glisser. Maintenez <strong>Ctrl</strong> pour accrocher aux angles usuels (pas de 15°). Validez avec <strong>Entrée</strong> ou annulez avec <strong>Esc</strong>. Tourner un calque vectoriel ne détériore pas la qualité (il est re-rendu). Tourner plusieurs fois un calque raster ne provoque pas de flou tant qu’il n’est pas re-rasterisé (par un coup de pinceau, par exemple). Essayez donc de conserver séparés les éléments que vous transformez souvent.</p>
+<p><strong>Déplacement&nbsp;:</strong> l’outil Déplacer (voir Outils de base) sert à déplacer le contenu d’un calque ou d’une sélection. Les flèches du clavier permettent de « pousser » par petits pas : 1 px, ou 10 px avec <strong>Ctrl</strong>, et alignement au bord avec <strong>Alt</strong>. Idéal pour un positionnement au pixel près.</p>
+<p><strong>Outils de transformation avancés&nbsp;:</strong> LazPaint 7 a introduit plusieurs outils sophistiqués. L’outil <em>Perspective de calque</em> permet de tirer les coins d’un calque pour donner l’illusion d’une inclinaison ou d’un recul 3D. Le <em>Grillage de déformation</em> applique un maillage que l’on déforme point par point, parfait pour corriger subtilement une photo ou créer un morphing artistique. L’outil <em>Zoom calque</em> redimensionne un calque via des poignées. Ces fonctions rapprochent LazPaint des grands logiciels en matière de transformations complexes.</p>
+<p>N’oubliez pas : vous pouvez toujours Annuler (<em>Ctrl+Z</em>) si le résultat ne convient pas. Par défaut, LazPaint conserve jusqu’à 200 annulations, ce qui laisse une grande liberté d’expérimentation. Utilisez les transformations pour positionner et ajuster vos éléments jusqu’à obtenir le résultat souhaité.</p></div>
+
+<div class="columns"><h2 id="colors">Réglages couleur</h2>
+<p>Le menu <strong>Couleurs</strong> regroupe de nombreuses fonctions de retouche colorimétrique. Elles servent à corriger ou modifier les couleurs d’une image ou d’un calque. Parmi les réglages essentiels&nbsp;:</p>
+<ul>
+  <li><strong>Luminosité / Contraste&nbsp;:</strong> ajustement de base pour éclaircir ou assombrir l’image et augmenter ou réduire le contraste. La luminosité déplace toutes les couleurs vers le clair ou le foncé ; le contraste étire ou comprime l’écart entre zones claires et sombres. Raccourci&nbsp;: <em>Ctrl+Maj+T</em>.</li>
+  <li><strong>Courbes&nbsp;:</strong> outil avancé qui remappe les tons via une courbe. On peut agir sur les canaux RVB ou HSL, offrant un contrôle fin ; par exemple, éclaircir les médiums sans brûler les hautes lumières.</li>
+  <li><strong>Coloriser&nbsp;:</strong> applique une teinte tout en conservant la luminosité. Choisissez une teinte et la saturation ; pratique pour passer une photo N&B en sépia, comme si l’on posait un filtre coloré.</li>
+  <li><strong>Postériser&nbsp;:</strong> réduit le nombre de couleurs distinctes. Un niveau de 8, par exemple, limite chaque canal à 8 valeurs, donnant un rendu graphique à aplats.</li>
+  <li><strong>Décaler les couleurs&nbsp;:</strong> fait tourner les teintes et règle la saturation ; utile pour changer globalement la palette (convertir les bleus en rouges, etc.).</li>
+  <li><strong>Intensité et Luminance&nbsp;:</strong> deux variations sur la luminosité. « Intensité » éclaircit ou assombrit sans simplement mélanger du blanc ou du noir, préservant mieux la saturation ; « Luminance » pousse les couleurs vers le blanc ou le noir. Subtil mais précieux en retouche photo.</li>
+  <li><strong>Normaliser&nbsp;:</strong> étire l’histogramme pour exploiter toute la plage tonale ; booste les noirs profonds et les blancs purs, améliorant le contraste (équivalent d’un « Auto-contrast »).</li>
+  <li><strong>Négatif&nbsp;:</strong> inverse les couleurs comme un négatif photo. LazPaint propose « Négatif » (corrigé gamma) et « Négatif linéaire » (sans gamma) pour des effets légèrement différents.</li>
+  <li><strong>Niveaux de gris&nbsp;:</strong> convertit l’image en gris en conservant la luminance perceptuelle (avec correction gamma).</li>
+  <li><strong>Échanger les canaux&nbsp;:</strong> dans les opérations Filtre, on peut permuter des canaux (ex. Rouge/Bleu) pour corriger ou créer des effets. On trouve aussi le filtre Appliquer une fonction, qui accepte n’importe quelle équation sur les canaux (voir <a href="#filters">Filtres & effets</a>).</li>
+</ul>
+<p>Ces réglages ouvrent un dialogue avec curseurs ou courbes et prévisualisation. Les calculs se font en sRGB conscient du gamma ; les ajustements respectent donc la perception visuelle et évitent les artefacts. Sur une image indexée, certaines opérations peuvent accroître le nombre de couleurs.</p>
+<p>En plus, LazPaint propose une barre Palette : charger / enregistrer des palettes, réduire une image à une palette avec tramage ou effet postériser (depuis la v6.4.1). Pratique pour le pixel-art ou les formats limités en couleurs. Associez une couleur à un chiffre avec <strong>Ctrl</strong>+chiffre, puis rappelez-la simplement par le chiffre.</p>
+<p>La <strong>Fenêtre Couleur</strong> affiche une roue chromatique, des curseurs de luminance et d’opacité. L’icône à double flèche échange couleur de stylo et d’arrière-plan ; on peut aussi les réinitialiser en tapant un nom de couleur. La pipette et le dessin au clic droit (couleur secondaire) permettent d’exploiter efficacement les deux couleurs. En résumé, le menu Couleurs et ses outils offrent un contrôle puissant, des corrections subtiles aux changements radicaux.</p></div>
+
+<div class="columns"><h2 id="filters">Filtres & effets</h2>
+<p>Le menu <strong>Filtre</strong> de LazPaint propose de nombreux filtres à appliquer sur un calque ou une sélection pour en modifier l’aspect de manière créative. Ils vont des flous et renforcements aux distorsions et effets artistiques. Un filtre peut s’appliquer à l’image entière ou uniquement à la zone sélectionnée. Voici les principales catégories :</p>
+<ul>
+  <li><strong>Filtres de flou :</strong> adoucissent l’image ou atténuent les détails. LazPaint inclut le <em>Flou radial</em> (flou non directionnel qui rayonne vers l’extérieur ; variantes précis, zoom ou « corona »), le <em>Flou de mouvement</em> (simule la traînée d’un objet en déplacement) et même un <em>Flou personnalisé</em> basé sur un masque ou un noyau fourni par l’utilisateur. Des flous plus simples (Flou rapide, Flou précis) équilibrent vitesse et qualité. Idéal pour lisser du bruit ou créer un effet de profondeur de champ.</li>
+  <li><strong>Netteté & lissage :</strong> <em>Netteté</em> augmente le contraste autour des bords pour rendre l’image plus claire ; <em>Lissage</em> (ou un flou de base) fait l’inverse, adoucissant et fusionnant les pixels. Complémentaires : un léger sharpen sauve une image floue, un smooth adoucit un grain ou des contours trop durs. Attention à ne pas trop pousser l’un ou l’autre (halo ou perte de détail).</li>
+  <li><strong>Filtres de bruit :</strong> ajoutent ou réduisent le bruit. <em>Ajouter du bruit</em> disperse des pixels aléatoires colorés (grain argentique). Le filtre <em>Médiane</em> supprime le bruit en remplaçant chaque pixel par la couleur médiane de ses voisins ; efficace contre le « sel et poivre » tout en préservant mieux les bords qu’un flou simple.</li>
+  <li><strong>Effets artistiques / de contour :</strong> LazPaint propose des filtres uniques. <em>Contour</em> crée un tracé style croquis en conservant les arêtes sur fond blanc. <em>Embossage</em> donne un relief 3D en transformant les couleurs en gris et en ombrant les bords. <em>ClearType</em> (et son inverse) imite le sous-pixel d’affichage du texte – effet de niche. <em>Appliquer une fonction</em> est un filtre avancé permettant d’appliquer n’importe quelle fonction mathématique aux canaux couleur (pratique pour des courbes personnalisées).</li>
+  <li><strong>Distorsions :</strong> déforment la géométrie. <em>Torsion</em> (<em>Twirl</em>) enroule l’image autour d’un centre. <em>Ondulation</em> (<em>Wave Displacement</em>) fait onduler l’image comme des vagues (amplitude & fréquence réglables). <em>Sphère</em> bombe l’image comme sur une sphère ; <em>Cylindre</em> l’enroule sur un cylindre. Utiles pour des effets miroir déformant ou préparer des textures destinées au mapping 3D.</li>
+  <li><strong>Génération (Render) :</strong> outre les filtres de modification, le menu <strong>Générer</strong> crée des contenus ou motifs. Par exemple : <em>Bruit de Perlin</em> pour une texture nuageuse naturelle ; <em>Eau</em>, <em>Neige</em>, <em>Bois</em>, <em>Métal</em>, <em>Pierre, Marbre</em> génèrent les textures correspondantes ; <em>Nuages</em> ajoute un bruit coloré façon ciel ; <em>Pluie</em> trace des filets simulant une averse. Pratique pour des fonds ou effets spéciaux : pluie sur un calque distinct en mode éclaircissant, par exemple. Certains de ces effets créent un nouveau calque éditable.</li>
+</ul>
+<p>Les filtres peuvent transformer radicalement l’image ; travaillez donc sur des calques dupliqués pour régler l’opacité ou masquer l’effet. Vous pouvez aussi combiner plusieurs filtres : la documentation montre, par exemple, comment créer un éclair en superposant deux bruits de Perlin en mode Différence puis en colorisant en bleu. Avec les annulations et les calques, expérimentez sans risque. Enfin, les filtres respectent la sélection : sélectionnez d’abord la zone concernée pour cibler l’effet (flouter l’arrière-plan tout en conservant un sujet net, par exemple).</p></div>
+
+<div class="columns"><h2 id="advanced">Fonctions avancées</h2>
+<p><strong>Calques et formes vectoriels&nbsp;:</strong> Depuis la version 7, LazPaint gère les éléments vectoriels. Lorsque vous dessinez une forme ou du texte, l’objet peut rester vectoriel. L’outil <em>Éditer la forme</em> (icône curseur) permet ensuite de déplacer l’objet ou de modifier ses nœuds. Ainsi, on peut corriger la taille d’un rectangle ou l’orthographe d’un texte après coup. Les formes acceptent aussi des remplissages en dégradé ou texture ; choisissez le style de remplissage dans les options de l’outil : couleur unie, dégradé (définissez couleurs de départ et d’arrivée puis faites glisser la ligne de dégradé) ou motif image. Des outils d’alignement facilitent l’alignement des objets vectoriels dans la page. Les calques vectoriels peuvent être exportés en SVG : LazPaint écrit un SVG multi-calques où formes et textes restent éditables dans Inkscape, par exemple. Inversement, vous pouvez importer du contenu SVG. Ces capacités font de LazPaint un éditeur hybride raster-vecteur assez unique dans sa catégorie.</p>
+<p><strong>Import d’objets 3D&nbsp;:</strong> LazPaint sait importer des modèles Wavefront <code>.obj</code>. Via <em>Fichier › Importer un objet 3D…</em>, choisissez le fichier, l’orientation, l’angle et l’éclairage ; le modèle est alors rendu en pixels sur un calque. Pratique pour intégrer un lettrage 3D ou une forme simple dans un montage. Les textures et normales personnalisées sont prises en compte. Une fois importé, l’objet n’est plus que des pixels ; choisissez donc l’angle et la lumière avant l’import, ou réimportez-le sous plusieurs angles si besoin.</p>
+<p><strong>Scripts Python&nbsp;:</strong> Pour les utilisateurs avancés, le menu <em>Script</em> donne accès au scripting Python. Des scripts prêts à l’emploi apportent des effets classiques de calque (<em>Ombre portée, Contour, Lueur interne/externe</em>…). Par exemple, « Ombre portée » duplique le calque, le noircit et le décale automatiquement. Vous pouvez écrire vos propres scripts : manipuler calques, appliquer filtres, générer des images procédurales, etc. Placez le <code>.py</code> dans le dossier scripts ; il apparaît alors dans le menu. Consultez la doc ou la communauté pour l’API détaillée.</p>
+<p><strong>Utilisation en ligne de commande&nbsp;:</strong> LazPaint peut s’exécuter sans interface graphique pour convertir ou traiter des images en batch. Syntaxe générale : <code>lazpaint &lt;entrée&gt; [commandes…] [sortie]</code>. Exemple : <code>lazpaint photo.pdn photo.png</code> convertit un fichier Paint.NET en PNG. Les commandes, préfixées par <code>-</code> (ou <code>/</code> sous Windows), enchaînent des opérations : <code>/RotateCW</code> (90° horaire), <code>/horizontalflip</code>, <code>/Resample(800,600)</code>, <code>/opacity(128)</code>, etc. On peut chaîner : <code>lazpaint in.jpg /RotateCCW /BlurFast out.png</code>. Sans fichier de sortie, LazPaint exécute puis ouvre le résultat dans l’interface. On peut aussi créer une image : <code>lazpaint /New(800,600) /Gradient(255,255,255,255,0,0,0,255,Linear,0,0,800,600) gradient.png</code>. C’est un équivalent léger d’ImageMagick pour les tâches simples. Pour la liste complète, lancez <code>lazpaint -help</code> ou consultez le <a href="https://wiki.freepascal.org/LazPaint_Command_line">wiki</a>.</p></div>
+
+<div class="columns"><h2 id="shortcuts">Raccourcis clavier</h2>
+<p>LazPaint propose des raccourcis pour la plupart des commandes afin d’accélérer votre travail. Beaucoup figurent directement dans les menus à droite du nom de la commande (par exemple, dans le menu Fichier : <em>Ctrl + O</em> pour Ouvrir, <em>Ctrl + S</em> pour Enregistrer, etc.). Les conventions habituelles sont respectées : <strong>Ctrl + Z</strong> pour Annuler, <strong>Ctrl + Y</strong> (ou Ctrl + Shift + Z) pour Rétablir, <strong>Ctrl + C</strong> pour Copier, <strong>Ctrl + V</strong> pour Coller, <strong>Suppr</strong> pour effacer une sélection ou un calque (si celui-ci est actif), et ainsi de suite. En plus, voici quelques raccourcis et astuces souris moins évidents :</p>
+
+<ul>
+  <li><strong>Barre d’espace (Panoramique) :</strong> maintenez-la pour passer temporairement à l’outil Main et faire défiler la vue. Relâchez pour revenir à l’outil précédent — pratique quand on peint au pinceau et qu’on veut se déplacer rapidement sur l’image.</li>
+  <li><strong>F6 (Afficher / masquer les panneaux) :</strong> cache ou révèle d’un coup toutes les fenêtres flottantes (Boîte à outils, Calques, Couleurs…). Idéal pour un espace de travail épuré ou pour retrouver un panneau fermé par erreur.</li>
+  <li><strong>Ctrl (Transformations précises) :</strong> pendant une rotation ou un redimensionnement avec poignées, maintenir <strong>Ctrl</strong> contraint l’opération : la rotation se cale par pas de 15°, le déplacement s’aligne au pixel.</li>
+  <li><strong>Shift (Contraindre formes / lignes) :</strong> maintenez <strong>Shift</strong> lors du dessin d’une forme pour conserver le ratio (cercle ou carré parfait). Dans l’outil d’édition de forme, <strong>Ctrl</strong> ajoute ou retire des éléments à la sélection vectorielle. Avec les outils polygone/courbe, <strong>Shift</strong> permet d’ajouter un nouveau polygone lié — utile pour créer un trou (à tracer dans le sens inverse).</li>
+  <li><strong>Retour arrière (Supprimer le dernier point / texte) :</strong> en dessin polygonal, supprime le dernier sommet placé ; dans l’outil Texte, efface le caractère précédent.</li>
+  <li><strong>Entrée (Valider sélection / transformation) :</strong> confirme l’action en cours ; par exemple, termine un déplacement ou une transformation.</li>
+  <li><strong>Esc (Annuler / désélectionner) :</strong> interrompt l’action ou ferme une boîte de dialogue. Si une sélection est active et qu’aucune manipulation n’est en cours, <strong>Esc</strong> la désactive.</li>
+  <li><strong>Clic droit (Action secondaire) :</strong> dans les outils de dessin, peint avec la couleur d’arrière-plan ; dans les outils de sélection, soustrait de la sélection ; dans le Tampon de clonage, définit le point source ; dans certaines formes ombrées, fixe la direction de la lumière.</li>
+  <li><strong>Molette de souris :</strong> défilement pour zoomer/dézoomer ; clic molette + glisser pour déplacer la vue (si supporté).</li>
+  <li><strong>Raccourcis d’outil (touche unique) :</strong> <strong>B</strong> pour Pinceau, <strong>E</strong> pour Gomme, <strong>T</strong> pour Texte, etc. Les bulles d’aide ou le menu rappellent ces lettres et permettent un changement d’outil ultra-rapide.</li>
+</ul>
+<p>En mémorisant ces raccourcis, vous accélérerez considérablement vos retouches. Les info-bulles et la barre d’état les rappellent souvent. En cas d’oubli, consultez le menu ou cette documentation. Avec un peu de pratique, l’usage combiné clavier-souris devient naturel et efficace.</p></div>
+
+<div class="columns"><h2 id="faq">FAQ (Frequently Asked Questions)</h2>
+<dl>
+  <dt><strong>Q: How do I install or update LazPaint?</strong></dt>
+  <dd><strong>A:</strong> Installation is straightforward. For Windows, run the installer and follow the prompts (it’s a small program and doesn’t bundle unwanted extras). For the portable version, just unzip it to a folder and run <code>LazPaint.exe</code>. On Ubuntu/Debian Linux, you can download the <code>.deb</code> package and double-click it to install, or use the command line (with <code>dpkg -i</code> command). Other Linux users can use Flatpak on Flathub or Snap, or compile from source. On macOS, there is a DMG – open it and drag LazPaint to Applications. To update, you’ll typically download the new version and install it over the old one (settings should carry over). Check the LazPaint blog or GitHub releases for update announcements.</dd>
+  <dt><strong>Q: What file formats can LazPaint open and save?</strong></dt>
+  <dd><strong>A:</strong> LazPaint supports a wide range of formats:<br>
+  <ul>
+  <li><strong>Native/project format:</strong> <code>.LZP</code> (LazPaint Project) – preserves layers, transparency, etc.</li>
+  <li><strong>Layered formats:</strong> <code>.ORA</code> (OpenRaster) for interoperability, <code>.PDN</code> (Paint.NET) for which LazPaint can import all layers, <code>.PSD</code> (Photoshop) which LazPaint can open as flattened, and <code>.oXo</code>.</li>
+  <li><strong>Standard image formats:</strong> PNG, JPEG, BMP, GIF, TIFF, WebP, PCX, TGA, XPM, XWD, etc. – LazPaint can read and write these. Note: For GIF and TIFF, LazPaint can handle multi-frame images (e.g., animations or multi-page TIFFs). ICO/CUR (icons and cursors) are supported too (LazPaint can create multi-resolution icons).</li>
+  <li><strong>3D formats:</strong> LazPaint imports Wavefront <code>.OBJ</code> models (rasterizing them to an image layer). It does not export 3D, so this is input only.</li>
+  </ul>
+  In summary, you can open almost any common image. When saving, choose LZP if you need to keep layers for future editing. Use PNG if you need lossless output with transparency, JPEG for small files (photographs), ORA if you plan to transfer the file to another layered editor, etc. One thing to note: when saving to formats like BMP or GIF that have limited color depth, LazPaint will prompt options (e.g., BMP 24-bit vs 8-bit). If an image has too many colors to save in a paletted format, you may need to reduce the colors (for example, use Posterize or convert to grayscale first). LazPaint’s flexibility with formats is a strong point – you’ll rarely find a format it can’t handle in some way.</dd>
+  <dt><strong>Q: Does it support transparency (alpha channel)? My eraser isn’t making things transparent.</strong></dt>
+  <dd><strong>A:</strong> Yes, LazPaint fully supports transparency on layers. If the eraser isn’t making areas transparent, it could be because there is an underlying opaque background layer. In LazPaint, when you create a new image, you have the option of a solid background or transparent. Alternatively, you can use selections: select the region you want to make transparent and hit <strong>Delete</strong>.</dd>
+  <dt><strong>Q: I lost my Layers/Colors/Tools windows. They disappeared – how do I get them back?</strong></dt>
+  <dd><strong>A:</strong> They might just be hidden or behind the main window. The quickest way to bring all panels back is to press <strong>F6</strong>, which toggles the visibility of the tool windows. If that doesn’t bring them back, go to the <em>View</em> menu and ensure “Layers Window”, “Colors Window”, “Toolbox” (or similarly named items) are checked or click them to re-open. LazPaint allows floating these panels freely, so it’s possible they got moved off-screen if you had a multi-monitor setup; F6 on/off can reset their state. If you prefer these panels to not float, you can dock them into the main window in the View menu.</dd>
+  <dt><strong>Q: How can I crop the image to a certain area?</strong></dt>
+  <dd><strong>A:</strong> Currently, LazPaint doesn’t have a dedicated “Crop Tool” button like some editors, but cropping is easy via selection. Use the rectangular selection tool to select the area you want to keep. Then go to <em>Image > Crop to selection</em>. That will cut the canvas down to that selection. Make sure you have the area exactly selected first. If you want to crop by exact numbers, you could use <em>Canvas Size</em> and manually input the new size, but using the selection is more visual. Once cropped, everything outside the area is discarded. If you accidentally crop too much, just undo (Ctrl+Z) and try again. Pro tip: if you want to extend the canvas (the opposite of crop, to add border area), use <em>Image > Canvas Size</em> and enter a larger size – you’ll get empty space (transparent or filled with a color depending on background) around your image.</dd>
+  <dt><strong>Q: How do I draw a straight line or a perfect circle?</strong></dt>
+  <dd><strong>A:</strong> To draw a straight line, the easiest way is to use the Polyline or Curve tool. Click (left or right) the starting point and right-click the end point. For a perfect circle or square, start drawing an ellipse or rectangle and hold <strong>Shift</strong> while dragging – this locks the aspect ratio to 1:1 (a circle or square).</dd>
+  <dt><strong>Q: The quality of my image got worse after resizing/rotating – can I avoid that?</strong></dt>
+  <dd><strong>A:</strong> When you resize or rotate a raster image, some quality loss (blurriness) can happen due to interpolation of pixels. LazPaint uses resampling algorithms to minimize this, but multiple transformations can compound errors. To avoid quality loss: try to do scaling in one go to the final size (rather than repeated rescale down then down again). For rotation, 90° rotations are lossless (since pixels realign), but arbitrary angles will blur slightly. One strategy: if you have vector shapes or a source with higher resolution, use those. LazPaint’s vector layers, for instance, can be transformed without losing quality, so if you know you’ll need to rotate a shape, keep it vector until you finalize. Also, LazPaint’s undo allows you to experiment – if you rotated something and it looks bad, undo and try a different approach (maybe rotate before scaling, or vice versa). In summary, the algorithms are good but not magic; avoid successive transforms on the same pixels. If needed, go back to the original and do a single transform to target. And for critical photo work, use the highest quality resample option.</dd>
+  <dt><strong>Q: Are there any tutorials or documentation for learning LazPaint?</strong></dt>
+  <dd><strong>A:</strong> Yes, beyond this help page, there are several resources. There’s also an official forum where the developer and users discuss usage tips – you can search or ask questions there. The LazPaint blog introduces new features with examples (for instance, posts about using blending modes to create lightning, or new gradient tools). Additionally, there are a few video tutorials on YouTube that demonstrate LazPaint’s interface and basic drawing operations (search for “LazPaint tutorial” on YouTube). Since LazPaint shares some similarities with Paint.NET, tutorials for that program can sometimes be applied in LazPaint (for example, how layers and blend modes work, or basic photo editing steps). And of course, you can reach out via the project’s <a href="https://github.com/bgrabitmap/lazpaint">GitHub page</a> if you encounter bugs or have suggestions. The community is small but friendly, and the developer is active in responding to feedback.</dd>
+</dl></div>
+
+<h2 id="resources">Ressources utiles</h2>
+<p>Pour plus d’informations ou d’aide, consultez ces ressources officielles&nbsp;:</p>
+<ul>
+  {{ $pdf := "pdf/lazpaint-tips-assets.pdf" | relURL -}}
+  <li><a href="{{ $pdf }}">Astuces et ressources</a> – Un PDF rédigé par Love (membre de la communauté) contenant plein d'astuces et de liens vers des images à inclure.</li> 
+  <li><a href="https://forum.lazarus.freepascal.org/index.php?board=27.0">Forum LazPaint</a> – Espace communautaire (hébergé sur le forum Lazarus) pour poser vos questions, signaler des problèmes ou partager vos expériences avec les autres utilisateurs et le développeur.</li>
+  <li><a href="https://github.com/bgrabitmap/lazpaint">Dépôt GitHub de LazPaint</a> – Code source et suivi des tickets. Idéal pour signaler un bug, demander une fonctionnalité ou contribuer au projet.</li>
+  <li><a href="https://www.youtube.com/results?search_query=LazPaint+tutorial">YouTube : tutoriels et démonstrations LazPaint</a> – Recherche YouTube pour trouver des vidéos pédagogiques ou des démonstrations faites par la communauté.</li>
+  <li><a href="https://lazpaint.blogspot.com/">Blog officiel LazPaint</a> – Articles du développeur présentant les nouveautés et donnant des astuces (par exemple, explications des changements de version).</li>
+  <li><a href="https://wiki.freepascal.org/LazPaint">Wiki LazPaint</a> – Documentation complète : fonctionnalités, spécifications de formats, tutoriels et résolution de problèmes.</li>
+</ul>
+<p>Avec ce guide et les ressources ci-dessus, vous avez tout pour maîtriser LazPaint. C’est un outil polyvalent qui fait le pont entre dessin simple et édition avancée. Bonne création !</p>
+</main>
+
+</main>
+{{ partial "footer.html" . }}

+ 166 - 0
web/layouts/page/documentation.html

@@ -0,0 +1,166 @@
+{{ partial "header.html" . }}
+<main id="main" class="doc">
+
+<div>
+    <a class="button" href="#interface">Interface Overview</a>
+    <a class="button" href="#tools">Basic Tools</a>
+    <a class="button" href="#selection">Selection Tools</a>
+    <a class="button" href="#layers">Layers</a>
+    <a class="button" href="#transforms">Transformations</a>
+    <a class="button" href="#colors">Color Adjustments</a>
+    <a class="button" href="#filters">Filters and Effects</a>
+    <a class="button" href="#advanced">Advanced Features</a>
+    <a class="button" href="#shortcuts">Keyboard Shortcuts</a>
+    <a class="button" href="#faq">FAQ</a>
+    <a class="button" href="#resources">Further Resources</a>
+</div>
+
+<div class="large-columns"><h2 id="interface">Interface Overview</h2>
+<p>LazPaint features a hybrid single window interface / multi-window interface with a main drawing canvas. The toolbox, color picker and layer stack can be separated as floating panels. Each of these panels can be toggled from the <em>View</em> menu (or by pressing <strong>F6</strong> to show/hide all tool windows at once). A dark theme for the interface is available if you prefer a darker UI. Menu options are laid out similarly to other image editors (with menus like File, Edit, Select, View, Image, Colors, Tools, Filter, Render, Script, Help along the top). Common actions are also accessible via a toolbar of icons. At the bottom, a status bar displays hints (for example, it shows tool usage tips or selection dimensions). Overall, the interface is designed to be familiar and easy to navigate for beginners.</p>
+{{ $img := "img/lazpaint-interface.png" | relURL -}}
+<center><img src="{{ $img }}" style="width: 50em; max-width: 100%" /></center></div>
+
+<div class="columns"><h2 id="tools">Basic Tools</h2>
+<p>LazPaint provides a variety of drawing and editing tools, accessible from the vertical toolbox (usually on the left side of the screen). Below is an overview of the basic tools and their usage:</p>
+<ul>
+  <li><strong>Brush/Pen Tool:</strong> This freehand drawing tool lets you paint on the canvas with the selected color. You can choose the brush shape and size (even load custom brush images). The brush can have softness (opacity gradient) for smooth edges. Use it to draw lines or any strokes.</li>
+  <li><strong>Eraser Tool:</strong> Erases parts of the image. The eraser will make pixels transparent (showing a checkerboard background). LazPaint’s eraser can operate in different modes (e.g. you can set it to lighten or darken instead of fully erasing, for special blending effects). Adjust the eraser size and opacity as needed. This is useful for removing unwanted areas or softly blending edges.</li>
+  <li><strong>Fill Tool (Bucket):</strong> Fills a contiguous area with the current foreground color. Click on a region and the tool will replace that region’s color (within a tolerance) with the selected fill color. It’s great for coloring in shapes or backgrounds. You can adjust the tolerance setting to control how similar neighboring pixels must be to get filled (higher tolerance fills a broader range of colors). Progressive mode can be toggled in the toolbar: when enabled the shape color will be affected as its color becomes different from the initial point.</li>
+  <li><strong>Shape Tools:</strong> LazPaint allows you to draw vector shapes such as rectangles, ellipses, polygons, and curves. These shape tools create a new vector layer or object that remains editable (you can move/resize it later without quality loss). For rectangles and ellipses, simply click-and-drag to draw the shape; hold <strong>Shift</strong> to constrain to a perfect square or circle. For polygons or poly-lines, click multiple points to create straight segments (<strong>Backspace</strong> will remove the last point if you make a mistake while drawing). For curves (Bezier-like curves), click the main points and the curve will adapt to it (at a given point, you can set if the curve should be round by pressing <strong>S</strong> or make an angle by pressing <strong>X</strong>). To finish a polygon or curve, you can right-click or click the first point again. You can set shape fill to solid color, gradient, or texture, and apply outline strokes or shadows (see <a href="#advanced">Advanced Features</a> for more on vector shapes).</li>
+  <li><strong>Text Tool:</strong> Allows you to insert text into your image. Click on the canvas to define the area and type to create a text object. You can choose font, size, style, alignment, and color. The text is placed as a vector object, so you can re-edit the content or style by selecting the text shape later. LazPaint also supports special text effects like outline or Phong shading (highlight and inner shadow) through the toolbar. Pressing <strong>Esc</strong> while using the Text tool can finish editing mode once you’re done typing, while <strong>Enter</strong> will add a new paragraph, with a vertical margin. Press <strong>Shift+Enter</strong> to insert a line break, without margin.</li>
+  <li><strong>Color Picker (Eyedropper):</strong> This tool lets you sample colors from the image. Click (or click-and-hold) on any pixel to pick up its color into the primary color slot (called “Pen” color). In LazPaint, the secondary color (background or “Back” color) can be picked by using the alternate click (for example, right-click with the picker to set the secondary color). This is useful for matching colors already in your image. You can quickly switch to the eyedropper by pressing <strong>C</strong>.</li>
+  <li><strong>Clone Stamp Tool:</strong> A handy retouching tool that allows you to copy pixels from one part of the image to another (useful for removing blemishes or duplicating objects). To use it, first <strong>right-click</strong> on the area you want to copy <em>from</em> (this sets the source point). Then left-click and draw where you want to paint the cloned content. The source moves as you paint, copying from the original area to the new area. If you need to reset the source, right-click again on a new source point. This works across layers too (ensure you have the correct layer selected when setting the source).</li>
+  <li><strong>Selection Tools:</strong> These tools (detailed in the <a href="#selection">Selection Tools</a> section) let you select specific regions of the image for editing. LazPaint offers rectangular selection, elliptical selection, free-form lasso, polygon selection, and a magic wand. Once a selection is made, other tools will draw in a temporary selection layer, only affecting that area. Selections can be inverted or adjusted.</li>
+  <li><strong>Move Tool:</strong> The move tool lets you move the current selection or layer content. After making a selection, choose the selection move tool and drag the selection to reposition that portion of the image. If a whole layer is selected in the Layers panel, the move tool will shift that layer. This tool is essential for arranging elements in a composition.</li>
+  <li><strong>Hand Tool (Pan):</strong> Represented by a hand icon, it allows you to pan around the canvas without editing. Click and drag with the Hand tool to scroll the view. This is especially helpful when you're zoomed in and want to navigate. You can as well start editing a shape or moving the current layer by clicking on it. You don’t actually need to switch to the Hand tool frequently, because you can hold the <strong>Space bar</strong> at any time to temporarily toggle the hand mode for panning (release <strong>Space</strong> to return to the previous tool).</li>
+  <li><strong>Zoom Controls:</strong> LazPaint provides zoom in/out buttons (magnifying glass icons with +/–). You can also zoom with the mouse wheel. Holding <strong>Ctrl</strong> will apply a finer zoom. There are one-click buttons for 100% (actual size) and “fit to window” zoom. Zooming does not alter the image data, only your view. The toolbar will show the current zoom level and coordinates of the cursor which can be helpful for precision work.</li>
+</ul>
+<p>Most tools have an options toolbar that gets appended at the top when selected, allowing you to adjust settings like opacity, size, tolerance, etc. Be sure to check those context options to get the desired effect from each tool. With a bit of practice, these tools enable both simple drawings and more complex image editing tasks.</p></div>
+
+<div class="columns"><h2 id="selection">Selection Tools</h2>
+<p>Selection tools allow you to define and work on a specific part of the image. LazPaint supports anti-aliased selections for smooth edges and semiselection, and you can even modify a selection as a mask. The selection content can be edited like an temporary layer. When a portion is semiselected, the content will be drawn with as semiopaque. The main selection tools include:</p>
+<ul>
+   <li><strong>Rectangular & Elliptical Selection:</strong> Click and drag to select a rectangular or oval region. You can see the selection outline with a bevel while the selection is highlighted in blue. Hold <strong>Shift</strong> while dragging to constrain the shape to a square or circle. Use this to quickly select large areas, borders or round shapes.</li>
+   <li><strong>Polygon Selection:</strong> Similar to the lasso but in straight line segments. Click to place corner points one by one; a line will connect each point. Use this for selecting polygonal or irregular shapes with straight edges. If you need to remove the last point while drawing, press <strong>Backspace</strong>. To finish, either click on the starting point or right-click to close the polygon automatically (closing connects back to the start).</li>
+   <li><strong>Curve Selection:</strong> This lets you draw a selection similary to Polygon Selection but with Bezier-like curve that adapt to the points.</li>
+   <li><strong>Magic Wand:</strong> Select an area by color similarity. Click on a pixel and the magic wand will select all neighboring pixels of similar color (the tolerance for similarity can be adjusted in the tool’s options). This is great for selecting a solid-colored background or any region with consistent color without tracing it manually. If the “Progressive” option is on, the border will be antialiased or semiselected.</li>
+   <li><strong>Selection Pen:</strong> LazPaint also allows treating the selection as a mask that you can paint on. You can paint the selection area (displayed as a translucent overlay). This can be very precise for complex selections. This is an advanced but powerful way to refine selections.</li>
+   <li><strong>Edit Selection:</strong> A dedicated “selection editor” can be opened with Edit Selection menu item. It shows selection as a grayscale image (white = selected, black = not selected, gray = semiselected).</li>
+</ul>
+<p>Once a selection is made, other operations will only affect that selected area. You can also move or transform the selection itself. For instance, choose the Move tool to drag the selected area to a new location. Various transformations are available in the Selection menu. If you intend to adjust the transform, it is recommended to paste it in a new layer and use layer transforms. To cancel current transformation, press <strong>Esc</strong>. To deselect, press <strong>Enter</strong>: this “releases” the selection, merging it over current layer.</p>
+<p>You can modify an existing selection by adding or subtracting areas. Uniquely, in LazPaint you can also use the right mouse button to subtract from a selection without changing modes. This makes it easy to refine your selection shape. Remember that any filter or paint action will only affect the area within the “selection” outline once you have an active selection.</p></div>
+
+<div class="columns"><h2 id="layers">Layer Support</h2>
+<p>Like advanced editors, LazPaint fully supports multiple layers in an image. The <strong>Layers</strong> panel (or window) shows all layers in the current image, each acting like a transparent sheet stacked on others. Using the layer toolbar or the main menu, you can add new layers, duplicate a layer, delete layers, and rearrange them by dragging up or down in the list. Each layer has an checkbox icon to toggle visibility and an opacity percentage slider to adjust its transparency. There’s also a dropdown for blend mode (default is “Normal”). Blend modes allow layers to mix in different ways (like Multiply, Additive, etc.). LazPaint offers several blending modes, including some unique to this program. Using layers, you can draw or edit parts of your image separately without affecting others, enabling non-destructive editing.</p>
+<p>LazPaint supports both <em>raster</em> and <em>vector</em> layers in the same image. A raster layer is a normal bitmap layer (pixels), while a vector layer contains shapes or text that can be edited after creation. For example, if you use the Shape or Text tool, LazPaint will keep that object’s vector information on the layer so you can adjust it later (e.g., change the text or reshape the curve). These vector objects are re-rendered if you transform the layer, ensuring they stay sharp. If you then use a pixel-based tool (like the brush) on that layer, LazPaint will rasterize it, meaning it converts the vector shapes into pixels on the layer (at that point you can’t edit the shape’s properties anymore). In practice, LazPaint handles this automatically – just be mindful that once you paint on a vector layer, it becomes a regular raster layer.</p>
+<p>Basic layer operations include:</p>
+<ul>
+	<li><strong>Rename a layer:</strong> Click the layer name in the panel to name it (helpful for organization).</li>
+	<li><strong>Reorder:</strong> Drag layers in the list to change which one is on top.</li>
+	<li><strong>Opacity:</strong> Adjust the layer’s transparency (0% = fully transparent, 100% = fully opaque).</li>
+	<li><strong>Blend Mode:</strong> Set how the layer blends with those below (e.g., “Multiply” for darkening, “Screen” for lightening, etc.). You can click a blend mode button to get a visual selection dialog or choose from a dropdown list.</li>
+	<li><strong>New/Delete:</strong> Add a layer (it will be blank or you can paste into it) or delete the selected layer.</li>
+</ul>
+<p>There are also commands to <strong>Flatten</strong> the image (merge all layers into one, e.g. when you need to save to formats that don’t support layers) and to <strong>Merge</strong> down (combine a layer with the one below it). Flattening will discard any hidden layers and just produce a single-layer image. LazPaint’s native <code>.LZP</code> format is recommended for saving your work in progress, as it preserves layers, transparency, and other metadata. You can later export to a standard format (like PNG or JPG) for sharing. Additionally, LazPaint can save to OpenRaster <code>.ORA</code> format, which means you can open your layered image in other software that supports ORA. This is great for interoperability (for example, you could start a painting in LazPaint and then fine-tune it in Krita or GIMP, or vice versa). LazPaint also imports Paint.NET files (<code>.pdn</code>). Overall, layers are one of the most powerful features of LazPaint – use them to separate your work into manageable pieces (sketch, color fills, shading, etc.) which you can edit independently.</p></div>
+
+<div class="columns"><h2 id="transforms">Transformations</h2>
+<p>LazPaint provides various commands and tools to transform your image or layers. Common transformation operations are found under the <em>Image</em> menu or <em>Layer</em> toolbar. For example, you can rotate the entire image 90° clockwise or counter-clockwise, or flip it horizontally/vertically. These operations affect all layers (if it’s the whole image) or just the selected layer (if you use the Layer transform). You can also rotate by arbitrary angles or resize layers via interactive tools.</p>
+<p><strong>Scaling/Resizing:</strong> To resize the whole image, use <em>Image > Resample</em> and enter new dimensions. LazPaint uses resampling algorithms to preserve quality when shrinking or enlarging images. There is also a <em>Canvas Size</em> function which lets you expand or crop the canvas without scaling the content (for example, to add borders or trim edges). If you want to scale a specific layer or selection, you might use the selection transform tool or copy the selection to a new image, resize, and paste back.</p>
+<p><strong>Rotation:</strong> For quick 90-degree turns, use the menu commands. For free rotation, LazPaint has a rotation tool – select the layer (or selection), then choose the rotate function. A bounding box appears, allowing you to drag to rotate. Hold <strong>Ctrl</strong> while rotating to snap to common angles (15° increments). This is useful for precise straightening. Once the desired angle is set, press <strong>Enter</strong> to apply the rotation (or Esc to cancel). Rotating a vector shape layer will not degrade its quality (it re-renders the shape). Rotating a raster layer multiple times will not cause blurring due to re-sampling, as long as it is not re-rasterized by using the pen tool for example. So try to separate parts for which you intend to adjust transforms continuously.</p>
+<p><strong>Moving:</strong> The Move tool (as described in Basic Tools) is used to shift layer contents or selections. You can also use arrow keys for nudging the selection or layer by small increments (1px per press, 10px if holding <strong>Ctrl</strong>, and align to the border if holding <strong>Alt</strong>). This is handy for fine positioning, such as aligning an object.</p>
+<p><strong>Advanced Transform Tools:</strong> LazPaint 7 introduced some sophisticated transform tools. The <em>Layer Perspective</em> tool allows you to take a layer and adjust its corner perspective – for instance, to make an image appear as if it’s tilted or receding in 3D space. You’d drag the corners of a grid on the layer to skew it. Another feature is the <em>Deformation Grid</em> (warp) tool, which gives you a mesh over the image that you can drag points on to warp the image smoothly (good for subtle photo corrections or artistic morphs). There is also a <em>Zoom Layer</em> tool that can scale a layer via a handle interface. These tools make LazPaint capable of complex transformations typically found in larger programs.</p>
+<p>Keep in mind that you can always Undo (<em>Ctrl+Z</em>) if a transformation doesn’t turn out right. LazPaint supports up to 200 undo steps by default, so you have a lot of freedom to experiment. Use transformations to position and tweak your image elements until you get the desired result.</p></div>
+
+<div class="columns"><h2 id="colors">Color Adjustments</h2>
+<p>LazPaint offers many color manipulation functions under the <strong>Colors</strong> menu (sometimes called Adjustments). These allow you to correct or alter the colors of your image or layer. Some key color adjustments include:</p>
+<ul>
+  <li><strong>Brightness/Contrast:</strong> A basic adjustment to make the image brighter or darker, and to increase or decrease contrast. It’s straightforward: brightness shifts all colors lighter or darker, while contrast expands or compresses the difference between light and dark areas. Shortcut: <em>Shift+Ctrl+T</em> for brightness/contrast as shown in menu.</li>
+  <li><strong>Curves:</strong> A more advanced tool for tonal adjustment, letting you remap input brightness to output brightness via a curve graph. In LazPaint, you can adjust curves for RGB channels or even HSL channels. This allows very fine control (for example, brighten midtones without blowing out highlights, by dragging the mid section of the curve).</li>
+  <li><strong>Colorize:</strong> Impose a color tint on the image while preserving the luminosity. You can pick a hue and adjust saturation. For example, turning a grayscale image into a sepia-toned image is a use of colorize. It’s like applying a colored filter over the image.</li>
+  <li><strong>Posterize:</strong> Reduce the number of distinct colors in the image. You choose a level (e.g., 8 levels will reduce the image to 8 shades per channel, creating a stylized effect). This can give an image a flat, graphic look by limiting color gradients.</li>
+  <li><strong>Shift Colors:</strong> Rotate the hues of the image and adjust saturation. This is useful if, say, you want to change all blues to reds, etc., or generally alter the color palette of the image. It’s like a hue rotation across the spectrum.</li>
+  <li><strong>Intensity and Lightness:</strong> These are two different brightness-related adjustments. “Intensity” in LazPaint makes colors lighter or darker without simply mixing with white or black (preserving saturation better). “Lightness” does a similar brightening/darkening but by pushing colors toward white or black. The difference is subtle but important for photo editing. Experiment to see which fits your needs; they target brightness in slightly different ways.</li>
+  <li><strong>Normalize:</strong> Stretches the color histogram to use the full range of tones. If an image is low-contrast, normalize will boost the darkest value to pure black and the lightest to pure white, spreading out the intermediate values. This can improve contrast automatically, similar to “Auto Contrast” in some software.</li>
+  <li><strong>Negative:</strong> Inverts the colors of the image – like a film negative. LazPaint offers “Negative” (which applies gamma correction so the inversion looks natural) and “Linear Negative” (inverts without gamma, giving a slightly different effect). This can be used for creative effects or analyzing complementary colors.</li>
+  <li><strong>Grayscale:</strong> Converts the image to grayscale (removes color). It uses a standard luminance calculation with gamma correction, meaning it tries to preserve perceived brightness. The result is an image with only shades of gray.</li>
+  <li><strong>Swap Channels:</strong> LazPaint has options (under Filter operations) to swap color channels. For instance, Swap Red/Blue will exchange the red and blue channel values. This can fix images with misinterpreted color channels or create odd color effects. There is as well the Apply function filter that can apply any arbitrary equation on color channels (see <a href="#filters">Filters and Effects</a>).</li>
+</ul>
+<p>Most of these adjustments open a dialog with sliders or curves and a preview. You can preview changes and tweak before applying. LazPaint processes colors in the sRGB color space with gamma awareness, so the adjustments are done in a way that matches how we perceive brightness (this avoids some artifacts that naive adjustments might create). In practice, that means using curves or intensity should feel “correct” visually. If you are working with indexed colors (like a palette-based image), note that some operations might increase the color count.</p>
+<p>Aside from these, LazPaint also allows palette editing via a Palette toolbar (e.g., you can load/save color palettes, reduce image to a palette with dithering or posterize effect since version 6.4.1). This is especially useful for pixel art or preparing images for formats with limited colors. You can associate a color with a digit by holding <strong>Ctrl</strong> and pressing the digit on the keyboard. Then simply recall the color by pressing the digit again (without holding <strong>Ctrl</strong>).</p>
+<p>The <strong>Color Window</strong> is where you choose colors to draw with – it shows a color wheel, with sliders for luminance/opacity. You can swap the current pen and background color with the small double-arrow icon or reset them to a color by entering their name. LazPaint’s color picker tool and right-click drawing (which uses the secondary color) allow you to utilize both colors efficiently while drawing. In summary, the Colors menu and related tools give you powerful control over the look of your image, from subtle corrections to dramatic changes.</p></div>
+
+<div class="columns"><h2 id="filters">Filters and Effects</h2>
+<p>The <strong>Filter</strong> menu in LazPaint contains various filters that you can apply to a layer or selection to change its appearance in creative ways. Filters range from blurs and sharpens to distortions and artistic effects. You can apply a filter to the entire image or just to the current selection (only the selected area will be affected). Below are some categories of filters available:</p>
+<ul>
+  <li><strong>Blur Filters:</strong> These soften the image or reduce detail. LazPaint includes <em>Radial Blur</em> (a non-directional blur radiating outward, with options like precise, zoom or “corona” blurs), <em>Motion Blur</em> (simulates the streaking of moving objects in one direction), and even a <em>Custom Blur</em> (which uses a mask or kernel you provide to blur in a custom pattern). There are also simpler blurs (fast blur, precise blur) which balance speed vs quality. Use blur filters to smooth out noise or create depth-of-field effects.</li>
+  <li><strong>Sharpen and Smooth:</strong> <em>Sharpen</em> enhances edges by increasing contrast around them, making the image appear crisper. <em>Smooth</em> (or a basic blur) does the opposite, softening features and blending pixels. These two are complementary – if an image is slightly blurry, a light sharpen can help; if it’s grainy or has harsh edges, a smooth can mellow it out. Be careful not to over-sharpen (which can cause halos) or over-smooth (which loses detail).</li>
+  <li><strong>Noise Filters:</strong> You can add or reduce noise. The <em>Add Noise</em> filter simply adds random color pixels (sprinkle of grain) to the image – sometimes used for artistic effect or to give a photo a film grain look. The <em>Median</em> filter reduces noise by replacing each pixel with the median color of its neighbors. Median is good for removing salt-and-pepper noise or small artifacts while preserving edges better than a plain blur.</li>
+  <li><strong>Artistic/Edge Effects:</strong> LazPaint has some unique filters. <em>Contour</em> will create a line drawing by keeping edges on a white background (like a pencil or sketch outline). <em>Emboss</em> will make the image appear raised or imprinted by turning colors into grays and shading edges as highlights and shadows – this gives a 3D relief effect. There’s also <em>ClearType</em> (and its inverse) which mimic the subpixel rendering of text, though that’s a niche effect for specific use cases. Another one is <em>Apply Function</em>, which is an advanced filter where you can apply an arbitrary mathematical function to the image’s color channels (useful only if you know exactly what transformation you need, like custom color curves via formula).</li>
+  <li><strong>Distortions:</strong> These filters warp the image geometry. <em>Twirl</em> will swirl the image around a chosen center, creating a vortex look. <em>Wave Displacement</em> will distort the image as if ripples or waves are passing through it (configurable by amplitude and frequency). <em>Sphere</em> makes the image look like it’s mapped on a 3D sphere (a bulging effect), and <em>Cylinder</em> does similarly as if wrapped on a cylinder. These can be used for fun-house mirror effects or to prepare textures for 3D mapping.</li>
+  <li><strong>Render (Generate):</strong> In addition to filters that modify existing content, LazPaint has a <strong>Render</strong> menu with tools to generate new content or patterns. For example: <em>Perlin Noise</em> (creates a random cloudy noise texture), which can be used for natural textures; <em>Water</em>, <em>Snow</em>, <em>Wood</em>, <em>Metal</em>, <em>Stone, Marble</em> etc. that generate textures of those materials; <em>Clouds</em> which adds cloud-like colored noise; and <em>Rain</em> which draws streaks to simulate falling rain on the image. These are great for creating backgrounds or for special effects (for instance, adding a rain effect over a photo). Some of these generated effects create a new layer that can be updated. Using different layers allow you to overlay them with blending modes for interesting results (e.g., rain on a separate layer set to a lightening blend mode to overlay on a scene).</li>
+</ul>
+<p>Filters can dramatically change your image, so it’s wise to use layers (duplicate the layer and apply the filter on the copy, so you can adjust opacity or mask the effect). You can also combine filters for unique outcomes. For example, LazPaint’s documentation or community posts show techniques like creating lightning by using Perlin Noise on two layers and blending them with Difference mode, then colorizing to a blue hue. This kind of layering plus filtering yields effects that a single built-in filter might not achieve alone. Don’t hesitate to experiment – with undo and layers, you can always revert or fine-tune the effect. And remember, filters respect selections: you can isolate the filter to just one part of your image by selecting that area first, which is very useful for targeted edits (like blurring a background but keeping a subject sharp).</p></div>
+
+<div class="columns"><h2 id="advanced">Advanced Features</h2>
+<p><strong>Vector Layers and Shapes:</strong> As mentioned earlier, LazPaint supports vector elements. When you draw shapes or text, they can remain vectorial (since version 7). You can use the <em>Edit Shape</em> tool (an icon with a cursor) to click on a vector shape or text and move it or adjust its nodes after it’s been created. This means you can fix a shape’s size or a text’s spelling after doing other work, which is very convenient. LazPaint can also apply gradients or textures to fills of shapes; to do this, look at the shape tool’s options where you can usually choose fill style (solid color vs gradient vs pattern). If you choose gradient, you can specify the start and end colors and drag the gradient line on the shape. Textures allow you to select an image to fill the shape. Furthermore, LazPaint has some alignment tools for shapes (to align vector objects relative to the canvas). Vector layers from LazPaint can be saved in SVG format: LazPaint can export layered SVG files so that vector shapes and text are preserved in the SVG. This means you could open the result in an SVG editor like Inkscape and continue editing there. Conversely, you can import SVG content. The vector capabilities of LazPaint make it a hybrid raster-vector editor, which is somewhat unique for a program of its class.</p>
+<p><strong>3D Object Import:</strong> LazPaint can import 3D models in Wavefront <code>.obj</code> format. When you use this feature (<em>File > Import 3D Object…</em> or similar), it will open a dialog to load an .obj file. You can choose the orientation, angle and lighting for the 3D model, and then LazPaint will render the 3D object onto a layer as a raster graphic. This is useful if you have a simple 3D model (like text or a shape from a 3D program) that you want to composite into an image. 3D models are loaded with their textures and custom normals, implying it does a decent job bringing in the model’s appearance. Keep in mind that once imported, the object is just pixels on a layer (not a fully manipulable 3D object), so choose your angle and lighting before importing, or import multiple times at different angles if needed.</p>
+<p><strong>Python Scripting:</strong> For power users, LazPaint provides a scripting interface under the <em>Script</em> menu. The scripts are written in Python. Through scripting, you can automate tasks or add new features. LazPaint comes with some pre-made scripts that implement common layer effects (accessible usually as menu items under Script). For example, you can find scripts for <em>Drop Shadow, Stroke (Outline), Inner Glow, Outer Glow</em>, etc. Using the Drop Shadow script will create a duplicate of your layer’s content, fill it with a semi-transparent black and offset it to look like a shadow – all automatically. The Stroke script will stroke the outside of your opaque pixels with a chosen color. These are things you can do manually with layers, but the scripts make it one-click. You can also create new scripts: if you are comfortable with Python, you can use it to manipulate images, layers, and apply effects in code. For instance, a script can iterate over all layers and apply a filter, or generate a complex procedural image. To run a script, you usually place the <code>.py</code> file in the scripts directory and then it will appear in the Script menu. This feature is somewhat advanced and might require consulting the official documentation or community for specifics, but it’s there for those who need automation or want to extend LazPaint’s capabilities.</p>
+<p><strong>Command-Line Usage:</strong> Another advanced feature is the ability to use LazPaint from a command-line (terminal) without the GUI, to perform image operations in batch or quick conversions. The general syntax is: <code>lazpaint &lt;input file&gt; [commands...] [output file]</code>. For example, you can use LazPaint to convert image formats just by calling it in a terminal: <code>lazpaint picture.pdn picture.png</code> will load a Paint.NET file and save it as PNG. If you include operation commands, LazPaint will apply them. Commands are given with a prefix <code>-</code> or <code>/</code> (on Windows you can use either, on Linux use <code>-</code>). Some examples: <code>/RotateCW</code> to rotate clockwise 90°, <code>/horizontalflip</code> or <code>/verticalflip</code> to mirror the image, <code>/Resample(800,600)</code> to resize the image to 800x600, <code>/opacity(128)</code> to change opacity, etc. You can chain multiple commands. For instance: <code>lazpaint input.jpg /RotateCCW /BlurFast output.png</code> would rotate an image counter-clockwise and then blur it, saving the result. If you omit the output file, LazPaint will execute the commands and then open the result in the GUI for you to review or continue editing. You can also run LazPaint with no input but with commands to create images from scratch; for example, <code>lazpaint /New(800,600) /Gradient(255,255,255,255,0,0,0,255,Linear,0,0,800,600) gradient.png</code> would create a new 800x600 image and fill it with a black-to-white linear gradient, then save it. Using LazPaint via command-line is like having a lightweight ImageMagick-like tool for basic operations, which can be very useful for scripting repetitive tasks or integrating into other workflows. For the full list of supported, run the command <code>lazpaint -help</code> or refer to the <a href="https://wiki.freepascal.org/LazPaint_Command_line">wiki</a> and examples.</p></div>
+
+<div class="columns"><h2 id="shortcuts">Keyboard Shortcuts</h2>
+<p>LazPaint provides keyboard shortcuts for most commands to speed up your workflow. Many of these are indicated in the menus next to the command names (for example, in the File menu you’ll see <em>Ctrl+O</em> for Open, <em>Ctrl+S</em> for Save, etc.). It follows common conventions: <strong>Ctrl+Z</strong> for Undo, <strong>Ctrl+Y</strong> (or Ctrl+Shift+Z) for Redo, <strong>Ctrl+C</strong> to Copy, <strong>Ctrl+V</strong> to Paste, <strong>Del</strong> to delete a selection or layer (when a layer is focused), and so on. In addition to those, here are some useful shortcuts and mouse tricks that may not be immediately obvious from the menus:</p>
+<ul>
+  <li><strong>Space bar (Pan):</strong> Hold down the space bar to temporarily switch to the Hand tool and pan around. This works while using most other tools – for example, if you’re in the middle of drawing with the brush and need to move to a different part of the image, press and hold space, drag to move the canvas, then release space to return to the brush.</li>
+  <li><strong>F6 (Toggle panels):</strong> Press F6 to hide or show all the floating tool windows (Toolbox, Layers panel, Color panel, etc.). This is useful if you want a distraction-free canvas or if you accidentally closed a panel and want it back. Pressing F6 again brings them back exactly as they were.</li>
+  <li><strong>Ctrl (Precise transforms):</strong> When using transformation operations (like rotating or resizing with handles), holding <strong>Ctrl</strong> will constrain the transform for precision. For rotation, it snaps to fixed angles (15° increments). For moving, it snaps to pixels.</li>
+  <li><strong>Shift (Constrain shapes/lines):</strong> Hold <strong>Shift</strong> while drawing shapes to maintain aspect ratio (perfect circle/square). When using the Edit shape tool, <strong>Ctrl</strong> will add or remove the elements to the current vector selection. When using polygon/curve tools, holding <strong>Shift</strong> allow to add another polygon that will be linked to the current one. This is useful if you want to draw a hole, for this you need to draw the hole in the reverse direction (counter-clockwise if the polygon was drawn clockwise).</li>
+  <li><strong>Backspace (Undo point/text):</strong> When drawing a polygon selection or shape with multiple clicks, press Backspace to delete the last point you placed if you made a mistake. Similarly, if you are typing text with the Text tool, Backspace will delete characters as usual. Essentially it’s an undo for the last step in shape/text input.</li>
+  <li><strong>Enter (Confirm selection/transform):</strong> Press <strong>Enter</strong> to confirm or “apply” the current action. For example, after moving or transforming a selection, pressing <strong>Enter</strong> will finalize it (stop the moving mode).</li>
+  <li><strong>Esc (Cancel/deselect):</strong> Press <strong>Esc</strong> to cancel the current operation or dialog. If you’re in the middle of drawing a shape or making a selection and want to cancel, <strong>Esc</strong> will usually abort it. If a selection is active, <strong>Esc</strong> will clear it (deselect) <em>provided</em> there is no partial action pending (for instance, <strong>Esc</strong> will deselect if a selection exists and you are not actively moving a node or something).</li>
+  <li><strong>Right-click (Alternate actions):</strong> The right mouse button is used for alternate tool actions in LazPaint. For drawing tools, right-click will draw with the secondary (background) color instead of the primary, effectively “swapping” the colors temporarily. For selection tools, dragging with right-click will subtract from the existing selection (where left-click would normally add or replace the selection). For polygon shapes and lines, a right-click often signifies “finish” – it closes the shape so you don’t have to loop back to the start manually. In tools like the Clone Stamp, as mentioned, right-click sets the source point. Also, certain effect tools (like setting a light source for shaded text or shapes) use right-click: for example, if you have a “Shaded shape” tool (with a light source), you can right-click on the canvas to set the light’s direction.</li>
+  <li><strong>Mouse Wheel:</strong> Use Mouse Wheel to zoom in and out (each notch will zoom a step). You can also click the middle mouse button (wheel click) and drag to pan if your mouse supports it.</li>
+  <li><strong>Tool Shortcuts:</strong> LazPaint has single-key shortcuts to switch tools. For instance, pressing <strong>B</strong> will select the Brush, <strong>E</strong> for Eraser, <strong>T</strong> for Text, etc. These are indicated in the tooltip of the tool or in the menu. Using these single keys can speed up switching between tools without going to the toolbox each time.</li>
+</ul>
+<p>By becoming familiar with these shortcuts, you can significantly speed up your editing process in LazPaint. The interface tooltips and status bar messages often remind you of these. If you forget a shortcut, check the menu or this documentation. With practice, you’ll find yourself using a combination of keyboard and mouse to work quickly and efficiently.</p></div>
+
+<div class="columns"><h2 id="faq">FAQ (Frequently Asked Questions)</h2>
+<dl>
+  <dt><strong>Q: How do I install or update LazPaint?</strong></dt>
+  <dd><strong>A:</strong> Installation is straightforward. For Windows, run the installer and follow the prompts (it’s a small program and doesn’t bundle unwanted extras). For the portable version, just unzip it to a folder and run <code>LazPaint.exe</code>. On Ubuntu/Debian Linux, you can download the <code>.deb</code> package and double-click it to install, or use the command line (with <code>dpkg -i</code> command). Other Linux users can use Flatpak on Flathub or Snap, or compile from source. On macOS, there is a DMG – open it and drag LazPaint to Applications. To update, you’ll typically download the new version and install it over the old one (settings should carry over). Check the LazPaint blog or GitHub releases for update announcements.</dd>
+  <dt><strong>Q: What file formats can LazPaint open and save?</strong></dt>
+  <dd><strong>A:</strong> LazPaint supports a wide range of formats:<br>
+  <ul>
+  <li><strong>Native/project format:</strong> <code>.LZP</code> (LazPaint Project) – preserves layers, transparency, etc.</li>
+  <li><strong>Layered formats:</strong> <code>.ORA</code> (OpenRaster) for interoperability, <code>.PDN</code> (Paint.NET) for which LazPaint can import all layers, <code>.PSD</code> (Photoshop) which LazPaint can open as flattened, and <code>.oXo</code>.</li>
+  <li><strong>Standard image formats:</strong> PNG, JPEG, BMP, GIF, TIFF, WebP, PCX, TGA, XPM, XWD, etc. – LazPaint can read and write these. Note: For GIF and TIFF, LazPaint can handle multi-frame images (e.g., animations or multi-page TIFFs). ICO/CUR (icons and cursors) are supported too (LazPaint can create multi-resolution icons).</li>
+  <li><strong>3D formats:</strong> LazPaint imports Wavefront <code>.OBJ</code> models (rasterizing them to an image layer). It does not export 3D, so this is input only.</li>
+  </ul>
+  In summary, you can open almost any common image. When saving, choose LZP if you need to keep layers for future editing. Use PNG if you need lossless output with transparency, JPEG for small files (photographs), ORA if you plan to transfer the file to another layered editor, etc. One thing to note: when saving to formats like BMP or GIF that have limited color depth, LazPaint will prompt options (e.g., BMP 24-bit vs 8-bit). If an image has too many colors to save in a paletted format, you may need to reduce the colors (for example, use Posterize or convert to grayscale first). LazPaint’s flexibility with formats is a strong point – you’ll rarely find a format it can’t handle in some way.</dd>
+  <dt><strong>Q: Does it support transparency (alpha channel)? My eraser isn’t making things transparent.</strong></dt>
+  <dd><strong>A:</strong> Yes, LazPaint fully supports transparency on layers. If the eraser isn’t making areas transparent, it could be because there is an underlying opaque background layer. In LazPaint, when you create a new image, you have the option of a solid background or transparent. Alternatively, you can use selections: select the region you want to make transparent and hit <strong>Delete</strong>.</dd>
+  <dt><strong>Q: I lost my Layers/Colors/Tools windows. They disappeared – how do I get them back?</strong></dt>
+  <dd><strong>A:</strong> They might just be hidden or behind the main window. The quickest way to bring all panels back is to press <strong>F6</strong>, which toggles the visibility of the tool windows. If that doesn’t bring them back, go to the <em>View</em> menu and ensure “Layers Window”, “Colors Window”, “Toolbox” (or similarly named items) are checked or click them to re-open. LazPaint allows floating these panels freely, so it’s possible they got moved off-screen if you had a multi-monitor setup; F6 on/off can reset their state. If you prefer these panels to not float, you can dock them into the main window in the View menu.</dd>
+  <dt><strong>Q: How can I crop the image to a certain area?</strong></dt>
+  <dd><strong>A:</strong> Currently, LazPaint doesn’t have a dedicated “Crop Tool” button like some editors, but cropping is easy via selection. Use the rectangular selection tool to select the area you want to keep. Then go to <em>Image > Crop to selection</em>. That will cut the canvas down to that selection. Make sure you have the area exactly selected first. If you want to crop by exact numbers, you could use <em>Canvas Size</em> and manually input the new size, but using the selection is more visual. Once cropped, everything outside the area is discarded. If you accidentally crop too much, just undo (Ctrl+Z) and try again. Pro tip: if you want to extend the canvas (the opposite of crop, to add border area), use <em>Image > Canvas Size</em> and enter a larger size – you’ll get empty space (transparent or filled with a color depending on background) around your image.</dd>
+  <dt><strong>Q: How do I draw a straight line or a perfect circle?</strong></dt>
+  <dd><strong>A:</strong> To draw a straight line, the easiest way is to use the Polyline or Curve tool. Click (left or right) the starting point and right-click the end point. For a perfect circle or square, start drawing an ellipse or rectangle and hold <strong>Shift</strong> while dragging – this locks the aspect ratio to 1:1 (a circle or square).</dd>
+  <dt><strong>Q: The quality of my image got worse after resizing/rotating – can I avoid that?</strong></dt>
+  <dd><strong>A:</strong> When you resize or rotate a raster image, some quality loss (blurriness) can happen due to interpolation of pixels. LazPaint uses resampling algorithms to minimize this, but multiple transformations can compound errors. To avoid quality loss: try to do scaling in one go to the final size (rather than repeated rescale down then down again). For rotation, 90° rotations are lossless (since pixels realign), but arbitrary angles will blur slightly. One strategy: if you have vector shapes or a source with higher resolution, use those. LazPaint’s vector layers, for instance, can be transformed without losing quality, so if you know you’ll need to rotate a shape, keep it vector until you finalize. Also, LazPaint’s undo allows you to experiment – if you rotated something and it looks bad, undo and try a different approach (maybe rotate before scaling, or vice versa). In summary, the algorithms are good but not magic; avoid successive transforms on the same pixels. If needed, go back to the original and do a single transform to target. And for critical photo work, use the highest quality resample option.</dd>
+  <dt><strong>Q: Are there any tutorials or documentation for learning LazPaint?</strong></dt>
+  <dd><strong>A:</strong> Yes, beyond this help page, there are several resources. There’s also an official forum where the developer and users discuss usage tips – you can search or ask questions there. The LazPaint blog introduces new features with examples (for instance, posts about using blending modes to create lightning, or new gradient tools). Additionally, there are a few video tutorials on YouTube that demonstrate LazPaint’s interface and basic drawing operations (search for “LazPaint tutorial” on YouTube). Since LazPaint shares some similarities with Paint.NET, tutorials for that program can sometimes be applied in LazPaint (for example, how layers and blend modes work, or basic photo editing steps). And of course, you can reach out via the project’s <a href="https://github.com/bgrabitmap/lazpaint">GitHub page</a> if you encounter bugs or have suggestions. The community is small but friendly, and the developer is active in responding to feedback.</dd>
+</dl></div>
+
+<h2 id="resources">Further Resources</h2>
+<p>If you need more information or help, check out these official LazPaint resources:</p>
+<ul>
+  {{ $pdf := "pdf/lazpaint-tips-assets.pdf" | relURL -}}
+  <li><a href="{{ $pdf }}">Tips and assets</a> - A PDF with lots of tips and links to assets provided by Love (a community member)</a></li> 
+  <li><a href="https://forum.lazarus.freepascal.org/index.php?board=27.0">LazPaint Forum</a> – Community forum (under Lazarus forums) where you can ask questions, report issues, and share experiences with other LazPaint users and the developer.</li>
+  <li><a href="https://github.com/bgrabitmap/lazpaint">LazPaint GitHub Repository</a> – The source code and issue tracker. Useful if you want to report a bug or request a feature, or even contribute code.</li>
+  <li><a href="https://www.youtube.com/results?search_query=LazPaint+tutorial">YouTube: LazPaint Tutorials and Demos</a> – A YouTube search link, since specific video content may be user-contributed. Here you can find tutorials or demonstrations of LazPaint in action.</li>
+  <li><a href="https://lazpaint.blogspot.com/">LazPaint Official Blog</a> – Posts by the developer highlighting new features and tips (for example, explanations of new version changes).</li>
+  <li><a href="https://wiki.freepascal.org/LazPaint">LazPaint Wiki</a> – Comprehensive documentation on features, file format specs, tutorials, and troubleshooting.</li>
+</ul>
+<p>With this help guide and the resources above, you should be well on your way to mastering LazPaint. It’s a versatile tool that bridges simple painting and advanced editing. Happy painting!</p>
+</main>
+{{ partial "footer.html" . }}

Diferenças do arquivo suprimidas por serem muito extensas
+ 29 - 0
web/layouts/page/documentation.ru.html


+ 1 - 1
web/layouts/page/last.html

@@ -1,6 +1,6 @@
 {{ partial "header.html" . }}
 {{ $url := "https://api.github.com/repos/bgrabitmap/lazpaint/releases/latest" -}}
-{{ $last := getJSON $url -}}
+{{ $last := resources.GetRemote $url | transform.Unmarshal }}
 {{ $text := printf "\n%s" $last.body -}}
 {{ $text := replace $text "  *" "-" -}}
 {{ $text := replace $text "\n-" "\n•" -}}

+ 0 - 3
web/layouts/partials/nav.html

@@ -8,9 +8,6 @@
                     {{- else -}}
                         {{- $item.Set "URL" (relURL .URL) -}}
                     {{- end -}}
-                    {{- if and (eq .Name "documentation") (ne $page.Language.Lang "en") -}}
-                        {{- $item.Set "URL" (printf "%s/%s" ($item.Get "URL") $page.Language.Lang) -}}
-                    {{- end -}}
                     {{- if eq (relURL $page.Permalink) (relLangURL .URL) -}}
                         {{- $item.Set "Class" "button success" -}} 
                     {{- else -}}

+ 49 - 0
web/static/css/style.css

@@ -8,10 +8,58 @@ body {
     background: black;
 }
 
+code {
+	background: #444;
+}
+
 p {
     margin: 0px;
 }
 
+.doc {
+	background: #403531;
+	padding: 2em;
+}
+
+.doc p, .doc dd {
+	margin-bottom: 6px;
+}
+
+.doc a:not(.button) {
+	color: #85D4DE;
+}
+
+.columns {
+  column-width: 25em;
+  column-gap: 2em;
+  text-align: justify;
+  hyphens: auto;
+  -webkit-hyphens: auto;
+  word-spacing: -1px;
+  margin: 1em 0;
+  padding: 1em;
+}
+
+.large-columns {
+  column-width: 33em;
+  column-gap: 2em;
+  text-align: justify;
+  hyphens: auto;
+  -webkit-hyphens: auto;
+  word-spacing: -1px;
+  margin: 1em 0;
+  padding: 1em;
+}
+
+.columns h2 {
+	margin-top: 0;
+	padding-top: 0;
+}
+
+.columns:nth-child(even) {
+	background: #51433E;
+}
+
 h1 {
     font-size: 3.5rem;
     font-weight: 300;
@@ -35,6 +83,7 @@ h2 {
     padding-bottom: 30px;
     margin-bottom: 5px;
     background-repeat: no-repeat;
+	background-position: 50% 20%;
 }
 
 .languages {

BIN
web/static/img/lazpaint-interface.png


BIN
web/static/pdf/lazpaint-tips-assets.pdf


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff