<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                小時候我們都喜歡看連環畫,雖然是黑白色的,但是也能讓我們看的津津有味。 今天,我在這里介紹一種連環畫特效的實現方法,帶你回到那個記憶的年代。 那個時代彩色的書籍是很少的,連環畫幾乎都是黑白色的,而且有些發黃的年代感,這個也就是它的主要特點;還有一個特點就是,畫面對比鮮明;針對這兩點,我們可以實現了。 具體步驟如下: 1,假設圖像像素P(i,j)的RGB值為r,g,b; 按照如下公式計算新的RGB: R = (|2*g-b+r|*r)>>8; G = (|2*b-g+r|*r)>>8; B =?(|2*b-g+r|*r)>>8; 注意:這一步是達到對比度增強的效果。 2,計算灰度值: Gray = (R+G+B) / 3; 注意:這里直接使用了明度計算公式替代灰度化公式。 3,計算結果RGB: Red = Gray + 10; Green = Gray + 10; Blue = Gray; 注意:此處Red,Green需要約束到[0,255]。 具體C#代碼如下: ~~~ private Bitmap FilterProcess(Bitmap a) { Bitmap srcBitmap = new Bitmap(a); int w = srcBitmap.Width; int h = srcBitmap.Height; System.Drawing.Imaging.BitmapData srcData = srcBitmap.LockBits(new Rectangle(0, 0, w, h), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format32bppArgb); byte* pSrc = (byte*)srcData.Scan0; int offset = srcData.Stride - w * 4; int red = 0, green = 0, blue = 0, gray = 0; for (int j = 0; j < h; j++) { for (int i = 0; i < w; i++) { blue = (Math.Abs(pSrc[0] - pSrc[1] + pSrc[0] + pSrc[2]) * pSrc[1]) >> 8; green = (Math.Abs(pSrc[0] - pSrc[1] + pSrc[0] + pSrc[2]) * pSrc[2]) >> 8; red = (Math.Abs(pSrc[1] - pSrc[0] + pSrc[1] + pSrc[2]) * pSrc[2]) >> 8; blue = Math.Max(0, Math.Min(blue, 255)); green = Math.Max(0, Math.Min(green, 255)); red = Math.Max(0, Math.Min(red, 255)); gray = (blue + green + red) / 3; red = Math.Min(255, gray + 10); pSrc[0] = (byte)gray; pSrc[1] = (byte)red; pSrc[2] = (byte)red; pSrc += 4; } pSrc += offset; } srcBitmap.UnlockBits(srcData); return srcBitmap; } ~~~ 效果圖如下: [![](https://box.kancloud.cn/2016-01-05_568b33210ebfe.jpg)](http://www.zealpixel.com/data/attachment/portal/201509/07/131816mw5qe59pq1uwcqae.jpg) 原圖 [![](https://box.kancloud.cn/2016-01-05_568b33212af6c.png)](http://www.zealpixel.com/data/attachment/portal/201509/07/131816kfgeifek7w7f3ke3.png) 連環畫效果圖 最后,給出一個完整的DEMO源碼下載連接:[http://www.zealpixel.com/forum.php?mod=viewthread&tid=135&extra=page%3D1](http://www.zealpixel.com/forum.php?mod=viewthread&tid=135&extra=page%3D1)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看