Fixed images

This commit is contained in:
2023-06-09 09:33:05 +02:00
parent a7c6ad610c
commit 1a8a73a143
106 changed files with 23563 additions and 26483 deletions
+66 -33
View File
@@ -337,6 +337,11 @@
Mercredi 7 Juin
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#jeudi-8-juin-2023">
Jeudi 8 Juin 2023
</a>
</li>
</ul>
</nav>
</li>
@@ -388,16 +393,6 @@
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Program.html">
Program.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/Settings.Designer.html">
Settings.Designer.cs
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="Code/SqliteStorage.html">
SqliteStorage.cs
</a>
@@ -679,6 +674,11 @@
Mercredi 7 Juin
</a>
</li>
<li class="md-nav__item">
<a class="md-nav__link" href="#jeudi-8-juin-2023">
Jeudi 8 Juin 2023
</a>
</li>
</ul>
</nav>
</div>
@@ -3311,7 +3311,8 @@ Pour detecter un arrêt je pense que la meilleure manière est de regarder si le
<h2 id="mercredi-7-juin">Mercredi 7 Juin</h2>
<p>La je suis en train de parler de l'optimisation de mon application et je viens de me rappeller qu'il manquait des methodes avec de la paralellisation alors je vais les convertir avant de continuer la doc.</p>
<p>En fait je viens de me rendre compte qu'aucunes de mes methodes de filtres n'étaient en parralel... Je ne sais pas si jaurai le temps de le faire aujourd'hui en fait</p>
<div class="language-Csharp highlight"><pre><span></span><code><span id="__span-39-1"><a href="#__codelineno-39-1" id="__codelineno-39-1" name="__codelineno-39-1"></a><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">Grayscale</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">)</span><span class="w"></span>
<p>Voici le code avant la paralellisation : </p>
<div class="language-Csharp highlight"><pre><span></span><code><span id="__span-39-1"><a href="#__codelineno-39-1" id="__codelineno-39-1" name="__codelineno-39-1"></a><span class="k">public</span><span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">VanishOxyAction</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-39-2"><a href="#__codelineno-39-2" id="__codelineno-39-2" name="__codelineno-39-2"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-3"><a href="#__codelineno-39-3" id="__codelineno-39-3" name="__codelineno-39-3"></a><span class="w"> </span><span class="n">Rectangle</span><span class="w"> </span><span class="n">rect</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Rectangle</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Height</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-4"><a href="#__codelineno-39-4" id="__codelineno-39-4" name="__codelineno-39-4"></a><span class="w"> </span><span class="n">BitmapData</span><span class="w"> </span><span class="n">bmpData</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">LockBits</span><span class="p">(</span><span class="n">rect</span><span class="p">,</span><span class="w"> </span><span class="n">ImageLockMode</span><span class="p">.</span><span class="n">ReadWrite</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">PixelFormat</span><span class="p">);</span><span class="w"></span>
@@ -3327,30 +3328,62 @@ Pour detecter un arrêt je pense que la meilleure manière est de regarder si le
</span><span id="__span-39-14"><a href="#__codelineno-39-14" id="__codelineno-39-14" name="__codelineno-39-14"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-15"><a href="#__codelineno-39-15" id="__codelineno-39-15" name="__codelineno-39-15"></a><span class="w"> </span><span class="kt">byte</span><span class="p">*</span><span class="w"> </span><span class="n">pixel</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-16"><a href="#__codelineno-39-16" id="__codelineno-39-16" name="__codelineno-39-16"></a>
</span><span id="__span-39-17"><a href="#__codelineno-39-17" id="__codelineno-39-17" name="__codelineno-39-17"></a><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-18"><a href="#__codelineno-39-18" id="__codelineno-39-18" name="__codelineno-39-18"></a><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-19"><a href="#__codelineno-39-19" id="__codelineno-39-19" name="__codelineno-39-19"></a><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="n">red</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-17"><a href="#__codelineno-39-17" id="__codelineno-39-17" name="__codelineno-39-17"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-18"><a href="#__codelineno-39-18" id="__codelineno-39-18" name="__codelineno-39-18"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-19"><a href="#__codelineno-39-19" id="__codelineno-39-19" name="__codelineno-39-19"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">red</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-39-20"><a href="#__codelineno-39-20" id="__codelineno-39-20" name="__codelineno-39-20"></a>
</span><span id="__span-39-21"><a href="#__codelineno-39-21" id="__codelineno-39-21" name="__codelineno-39-21"></a><span class="w"> </span><span class="c1">//Those a specific values to correct the weights so its more pleasing to the human eye</span>
</span><span id="__span-39-22"><a href="#__codelineno-39-22" id="__codelineno-39-22" name="__codelineno-39-22"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">gray</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)(</span><span class="n">red</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.3</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.59</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="m">0.11</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-23"><a href="#__codelineno-39-23" id="__codelineno-39-23" name="__codelineno-39-23"></a>
</span><span id="__span-39-24"><a href="#__codelineno-39-24" id="__codelineno-39-24" name="__codelineno-39-24"></a><span class="w"> </span><span class="c1">//This is not a proper treshold method but it is helping the sobel edge detection</span>
</span><span id="__span-39-25"><a href="#__codelineno-39-25" id="__codelineno-39-25" name="__codelineno-39-25"></a><span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">gray</span><span class="w"> </span><span class="p">&lt;=</span><span class="w"> </span><span class="n">F1TV_BACKGROUND_TRESHOLD</span><span class="p">.</span><span class="n">R</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-39-26"><a href="#__codelineno-39-26" id="__codelineno-39-26" name="__codelineno-39-26"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-27"><a href="#__codelineno-39-27" id="__codelineno-39-27" name="__codelineno-39-27"></a><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-28"><a href="#__codelineno-39-28" id="__codelineno-39-28" name="__codelineno-39-28"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-29"><a href="#__codelineno-39-29" id="__codelineno-39-29" name="__codelineno-39-29"></a><span class="w"> </span><span class="k">else</span><span class="w"></span>
</span><span id="__span-39-30"><a href="#__codelineno-39-30" id="__codelineno-39-30" name="__codelineno-39-30"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-39-31"><a href="#__codelineno-39-31" id="__codelineno-39-31" name="__codelineno-39-31"></a><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">gray</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-32"><a href="#__codelineno-39-32" id="__codelineno-39-32" name="__codelineno-39-32"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-33"><a href="#__codelineno-39-33" id="__codelineno-39-33" name="__codelineno-39-33"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-34"><a href="#__codelineno-39-34" id="__codelineno-39-34" name="__codelineno-39-34"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-35"><a href="#__codelineno-39-35" id="__codelineno-39-35" name="__codelineno-39-35"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-36"><a href="#__codelineno-39-36" id="__codelineno-39-36" name="__codelineno-39-36"></a><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">UnlockBits</span><span class="p">(</span><span class="n">bmpData</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-37"><a href="#__codelineno-39-37" id="__codelineno-39-37" name="__codelineno-39-37"></a>
</span><span id="__span-39-38"><a href="#__codelineno-39-38" id="__codelineno-39-38" name="__codelineno-39-38"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-39"><a href="#__codelineno-39-39" id="__codelineno-39-39" name="__codelineno-39-39"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-21"><a href="#__codelineno-39-21" id="__codelineno-39-21" name="__codelineno-39-21"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">blue</span><span class="p">,</span><span class="w"> </span><span class="n">green</span><span class="p">),</span><span class="w"> </span><span class="n">red</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-22"><a href="#__codelineno-39-22" id="__codelineno-39-22" name="__codelineno-39-22"></a>
</span><span id="__span-39-23"><a href="#__codelineno-39-23" id="__codelineno-39-23" name="__codelineno-39-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">max</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">255</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-39-24"><a href="#__codelineno-39-24" id="__codelineno-39-24" name="__codelineno-39-24"></a><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">255</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-25"><a href="#__codelineno-39-25" id="__codelineno-39-25" name="__codelineno-39-25"></a>
</span><span id="__span-39-26"><a href="#__codelineno-39-26" id="__codelineno-39-26" name="__codelineno-39-26"></a><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">0</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">pixel</span><span class="p">[</span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">max</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-27"><a href="#__codelineno-39-27" id="__codelineno-39-27" name="__codelineno-39-27"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-28"><a href="#__codelineno-39-28" id="__codelineno-39-28" name="__codelineno-39-28"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-29"><a href="#__codelineno-39-29" id="__codelineno-39-29" name="__codelineno-39-29"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-39-30"><a href="#__codelineno-39-30" id="__codelineno-39-30" name="__codelineno-39-30"></a><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">UnlockBits</span><span class="p">(</span><span class="n">bmpData</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-39-31"><a href="#__codelineno-39-31" id="__codelineno-39-31" name="__codelineno-39-31"></a>
</span><span id="__span-39-32"><a href="#__codelineno-39-32" id="__codelineno-39-32" name="__codelineno-39-32"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-39-33"><a href="#__codelineno-39-33" id="__codelineno-39-33" name="__codelineno-39-33"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
<p>Et voici à quoi ca ressemble avec la paralellisation :</p>
<div class="language-Csharp highlight"><pre><span></span><code><span id="__span-40-1"><a href="#__codelineno-40-1" id="__codelineno-40-1" name="__codelineno-40-1"></a><span class="k">public</span><span class="w"> </span><span class="n">Bitmap</span><span class="w"> </span><span class="nf">VanishOxyAction</span><span class="p">(</span><span class="n">Bitmap</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-40-2"><a href="#__codelineno-40-2" id="__codelineno-40-2" name="__codelineno-40-2"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-3"><a href="#__codelineno-40-3" id="__codelineno-40-3" name="__codelineno-40-3"></a><span class="w"> </span><span class="k">unsafe</span><span class="w"></span>
</span><span id="__span-40-4"><a href="#__codelineno-40-4" id="__codelineno-40-4" name="__codelineno-40-4"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-5"><a href="#__codelineno-40-5" id="__codelineno-40-5" name="__codelineno-40-5"></a><span class="w"> </span><span class="n">BitmapData</span><span class="w"> </span><span class="n">bitmapData</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">LockBits</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Rectangle</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Width</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">Height</span><span class="p">),</span><span class="w"> </span><span class="n">ImageLockMode</span><span class="p">.</span><span class="n">ReadWrite</span><span class="p">,</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">PixelFormat</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-6"><a href="#__codelineno-40-6" id="__codelineno-40-6" name="__codelineno-40-6"></a>
</span><span id="__span-40-7"><a href="#__codelineno-40-7" id="__codelineno-40-7" name="__codelineno-40-7"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="n">Drawing</span><span class="p">.</span><span class="n">Bitmap</span><span class="p">.</span><span class="n">GetPixelFormatSize</span><span class="p">(</span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">PixelFormat</span><span class="p">)</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">8</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-8"><a href="#__codelineno-40-8" id="__codelineno-40-8" name="__codelineno-40-8"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">heightInPixels</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Height</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-9"><a href="#__codelineno-40-9" id="__codelineno-40-9" name="__codelineno-40-9"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">widthInBytes</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Width</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-10"><a href="#__codelineno-40-10" id="__codelineno-40-10" name="__codelineno-40-10"></a><span class="w"> </span><span class="kt">byte</span><span class="p">*</span><span class="w"> </span><span class="n">PtrFirstPixel</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">*)</span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Scan0</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-11"><a href="#__codelineno-40-11" id="__codelineno-40-11" name="__codelineno-40-11"></a>
</span><span id="__span-40-12"><a href="#__codelineno-40-12" id="__codelineno-40-12" name="__codelineno-40-12"></a><span class="w"> </span><span class="n">Parallel</span><span class="p">.</span><span class="n">For</span><span class="p">(</span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">heightInPixels</span><span class="p">,</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"></span>
</span><span id="__span-40-13"><a href="#__codelineno-40-13" id="__codelineno-40-13" name="__codelineno-40-13"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-14"><a href="#__codelineno-40-14" id="__codelineno-40-14" name="__codelineno-40-14"></a><span class="w"> </span><span class="kt">byte</span><span class="p">*</span><span class="w"> </span><span class="n">currentLine</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">PtrFirstPixel</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="p">(</span><span class="n">y</span><span class="w"> </span><span class="p">*</span><span class="w"> </span><span class="n">bitmapData</span><span class="p">.</span><span class="n">Stride</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-15"><a href="#__codelineno-40-15" id="__codelineno-40-15" name="__codelineno-40-15"></a><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">0</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">&lt;</span><span class="w"> </span><span class="n">widthInBytes</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="n">bytesPerPixel</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-40-16"><a href="#__codelineno-40-16" id="__codelineno-40-16" name="__codelineno-40-16"></a><span class="w"> </span><span class="p">{</span><span class="w"></span>
</span><span id="__span-40-17"><a href="#__codelineno-40-17" id="__codelineno-40-17" name="__codelineno-40-17"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">blue</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-40-18"><a href="#__codelineno-40-18" id="__codelineno-40-18" name="__codelineno-40-18"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">green</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">1</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-40-19"><a href="#__codelineno-40-19" id="__codelineno-40-19" name="__codelineno-40-19"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">red</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">2</span><span class="p">];</span><span class="w"></span>
</span><span id="__span-40-20"><a href="#__codelineno-40-20" id="__codelineno-40-20" name="__codelineno-40-20"></a>
</span><span id="__span-40-21"><a href="#__codelineno-40-21" id="__codelineno-40-21" name="__codelineno-40-21"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">Math</span><span class="p">.</span><span class="n">Max</span><span class="p">(</span><span class="n">blue</span><span class="p">,</span><span class="w"> </span><span class="n">green</span><span class="p">),</span><span class="w"> </span><span class="n">red</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-22"><a href="#__codelineno-40-22" id="__codelineno-40-22" name="__codelineno-40-22"></a>
</span><span id="__span-40-23"><a href="#__codelineno-40-23" id="__codelineno-40-23" name="__codelineno-40-23"></a><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">max</span><span class="w"> </span><span class="p">&gt;</span><span class="w"> </span><span class="m">255</span><span class="w"> </span><span class="p">/</span><span class="w"> </span><span class="m">3</span><span class="p">)</span><span class="w"></span>
</span><span id="__span-40-24"><a href="#__codelineno-40-24" id="__codelineno-40-24" name="__codelineno-40-24"></a><span class="w"> </span><span class="n">max</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="m">255</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-25"><a href="#__codelineno-40-25" id="__codelineno-40-25" name="__codelineno-40-25"></a>
</span><span id="__span-40-26"><a href="#__codelineno-40-26" id="__codelineno-40-26" name="__codelineno-40-26"></a><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">1</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">currentLine</span><span class="p">[</span><span class="n">x</span><span class="w"> </span><span class="p">+</span><span class="w"> </span><span class="m">2</span><span class="p">]</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">max</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-27"><a href="#__codelineno-40-27" id="__codelineno-40-27" name="__codelineno-40-27"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-40-28"><a href="#__codelineno-40-28" id="__codelineno-40-28" name="__codelineno-40-28"></a><span class="w"> </span><span class="p">});</span><span class="w"></span>
</span><span id="__span-40-29"><a href="#__codelineno-40-29" id="__codelineno-40-29" name="__codelineno-40-29"></a><span class="w"> </span><span class="n">inputBitmap</span><span class="p">.</span><span class="n">UnlockBits</span><span class="p">(</span><span class="n">bitmapData</span><span class="p">);</span><span class="w"></span>
</span><span id="__span-40-30"><a href="#__codelineno-40-30" id="__codelineno-40-30" name="__codelineno-40-30"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span><span id="__span-40-31"><a href="#__codelineno-40-31" id="__codelineno-40-31" name="__codelineno-40-31"></a><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">inputBitmap</span><span class="p">;</span><span class="w"></span>
</span><span id="__span-40-32"><a href="#__codelineno-40-32" id="__codelineno-40-32" name="__codelineno-40-32"></a><span class="w"> </span><span class="p">}</span><span class="w"></span>
</span></code></pre></div>
<p>Les performances n'ont pas beaucoup augmenté mais au moins comme ca c'est fait</p>
<h2 id="jeudi-8-juin-2023">Jeudi 8 Juin 2023</h2>
<p>Aujourd'hui, le but est de finir la documentation et de mettre les derniers commentaires dans le code et faire une première release en BETA.</p>
<p>Pour ce genre de travail un peu pénible je conseille une bonne playlist de phonk. Ca permet d'écrire en rythme.</p>
</article>
</div>
</div>