最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#圖像處理之霓虹效果實(shí)現(xiàn)方法

 更新時(shí)間:2015年04月24日 11:53:46   作者:滄海一粟……  
這篇文章主要介紹了C#圖像處理之霓虹效果實(shí)現(xiàn)方法,可實(shí)現(xiàn)圖片轉(zhuǎn)換成霓虹效果的功能,需要的朋友可以參考下

本文實(shí)例講述了C#圖像處理之霓虹效果實(shí)現(xiàn)方法。分享給大家供大家參考。具體如下:

//定義霓虹處理函數(shù)
public Bitmap PNihong(Bitmap a)
{
 try
 {   
  int w = a.Width;
  int h = a.Height;
  Bitmap dstBitmap = new Bitmap(w, h, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  System.Drawing.Imaging.BitmapData srcData = a.LockBits(new Rectangle
   (0, 0, w, h), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  System.Drawing.Imaging.BitmapData dstData = dstBitmap.LockBits(new Rectangle
   (0, 0, w, h), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  unsafe
  {
   byte* pIn = (byte*)srcData.Scan0.ToPointer();
   byte* pOut = (byte*)dstData.Scan0.ToPointer();
   byte* p;
   int stride = srcData.Stride;
   for (int y = 0; y < h; y++)
   {
   for (int x = 0; x < w; x++)
   {
    //邊緣八個(gè)點(diǎn)像素不變
    if (x == 0 || x == w - 1 || y == 0 || y == h - 1)
    {
    pOut[0] = pIn[0];
    pOut[1] = pIn[1];
    pOut[2] = pIn[2];
    }
    else
    {
    int r0, r1, r2;
    int g1, g2, g0;
    int b1, b2, b0;
    double vR, vG, vB;
    //左上
    p = pIn - stride - 3;
    //右
    p = pIn + 3;
    r1 = p[2];
    g1 = p[1];
    b1 = p[0];
    //正下
    p = pIn + stride;
    r2 = p[2];
    g2 = p[1];
    b2 = p[0];
    //中心點(diǎn)
    p = pIn;
    r0 = p[2];
    g0 = p[1];
    b0 = p[0];
    //使用模板
    vR = Math.Sqrt((r0 - r1) * (r0 - r1) + (r0 - r2) * (r0 - r2));
    vG = Math.Sqrt((g0 - g1) * (g0 - g1) + (g0 - g2) * (g0 - g2));
    vB = Math.Sqrt((b0 - b1) * (b0 - b1) + (b0 - b2) * (b0 - b2));
    if (vR > 0)
    {
     vR = Math.Min(255, vR);
    }
    else
    {
     vR = Math.Max(0, vR);
    }
    if (vG > 0)
    {
     vG = Math.Min(255, vG);
    }
    else
    {
     vG = Math.Max(0, vG);
    }
    if (vB > 0)
    {
     vB = Math.Min(255, vB);
    }
    else
    {
     vB = Math.Max(0, vB);
    }
    pOut[0] = (byte)vB;
    pOut[1] = (byte)vG;
    pOut[2] = (byte)vR;
    }
    pIn += 3;
    pOut += 3;
   }
   pIn += srcData.Stride - w * 3;
   pOut += srcData.Stride - w * 3;
   }
  }
  a.UnlockBits(srcData);
  dstBitmap.UnlockBits(dstData);
  return dstBitmap;
 }
 catch (Exception e)
 {
  MessageBox.Show(e.Message.ToString());
  return null;
 }
}

原圖:

效果圖:

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • unity實(shí)現(xiàn)鼠標(biāo)拖住3D物體

    unity實(shí)現(xiàn)鼠標(biāo)拖住3D物體

    這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)鼠標(biāo)拖住3D物體,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Unity游戲開發(fā)中的中介者模式的應(yīng)用與實(shí)現(xiàn)

    Unity游戲開發(fā)中的中介者模式的應(yīng)用與實(shí)現(xiàn)

    中介者模式是Unity游戲開發(fā)中常用的設(shè)計(jì)模式之一,用于減少對(duì)象之間的直接耦合,通過(guò)引入中介者來(lái)協(xié)調(diào)對(duì)象之間的交互。通過(guò)中介者模式,游戲?qū)ο罂梢愿屿`活地進(jìn)行交互和協(xié)同工作,降低系統(tǒng)復(fù)雜度,使代碼更加易于維護(hù)和擴(kuò)展
    2023-05-05
  • C#中Timer使用及解決重入問(wèn)題

    C#中Timer使用及解決重入問(wèn)題

    本文主要介紹了C#中Timer使用及解決重入問(wèn)題的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Winform+.Net6實(shí)現(xiàn)圖片拖拽上傳功能

    Winform+.Net6實(shí)現(xiàn)圖片拖拽上傳功能

    這篇文章主要為大家詳細(xì)介紹了如何使用WinformPictureBox控件+.Net6 WebApi實(shí)現(xiàn)圖片拖拽上傳功能,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下
    2023-09-09
  • C#格式化數(shù)字字符串的方法

    C#格式化數(shù)字字符串的方法

    這篇文章主要為大家詳細(xì)介紹了C#格式化數(shù)字字符串的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Unity通用泛型單例設(shè)計(jì)模式(普通型和繼承自MonoBehaviour)

    Unity通用泛型單例設(shè)計(jì)模式(普通型和繼承自MonoBehaviour)

    這篇文章主要介紹了Unity通用泛型單例設(shè)計(jì)模式,分為普通型和繼承MonoBehaviour,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#紋理畫刷TextureBrush用法實(shí)例

    C#紋理畫刷TextureBrush用法實(shí)例

    這篇文章主要介紹了C#紋理畫刷TextureBrush用法,實(shí)例分析了紋理畫刷TextureBrush的具體使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#重載運(yùn)算符詳解

    C#重載運(yùn)算符詳解

    這篇文章主要介紹了C#重載運(yùn)算符,是進(jìn)行C#程序設(shè)計(jì)中非常重要的一個(gè)技巧,需要的朋友可以參考下
    2014-08-08
  • C#中Params的用法

    C#中Params的用法

    這篇文章主要介紹了C#中Params的用法,以實(shí)例的形式展示了采用Params在不知道參數(shù)的數(shù)量時(shí)的應(yīng)用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • C#簡(jiǎn)單讀寫txt文件的方法

    C#簡(jiǎn)單讀寫txt文件的方法

    這篇文章主要介紹了C#簡(jiǎn)單讀寫txt文件的方法,涉及C#針對(duì)文件的基本打開、寫入、保存與讀取等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2016-06-06

最新評(píng)論

淄博市| 中超| 临朐县| 沙洋县| 高平市| 繁峙县| 玉田县| 定日县| 陇南市| 永川市| 鹤庆县| 常山县| 青川县| 精河县| 蕉岭县| 星子县| 常德市| 梨树县| 井冈山市| 山西省| 博罗县| 昌邑市| 黄石市| 敦煌市| 美姑县| 自贡市| 闵行区| 枣阳市| 隆尧县| 宁津县| 宁明县| 东兰县| 石嘴山市| 油尖旺区| 共和县| 罗田县| 陈巴尔虎旗| 六枝特区| 和硕县| 合水县| 呼玛县|