• 反色,霓虹灯,浮雕


    1。反色

    Bitmap desc = new Bitmap(source.Width, source.Height);
    BitmapData sourcedata 
    = source.LockBits(new Rectangle(00, source.Width, source.Height), 
                    ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
    BitmapData descdata 
    = desc.LockBits(new Rectangle(00, desc.Width, desc.Height),
                    ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);

    unsafe
    {
          
    byte* sourceptr = (byte*)sourcedata.Scan0;  
          
    byte* descptr = (byte*)descdata.Scan0;
          
    for (int x = 0; x < source.Height; x++)
          {
               
    for (int y = 0; y < source.Width; y++)
               {
                    
    *(descptr++= (byte)(255 - *(sourceptr++));
                    
    *(descptr++= (byte)(255 - *(sourceptr++));
                    
    *(descptr++= (byte)(255 - *(sourceptr++));
                }
                sourceptr 
    += sourcedata.Stride - source.Width * 3;
                descptr 
    += descdata.Stride - desc.Width * 3;
           }
    }
    source.UnlockBits(sourcedata);
    desc.UnlockBits(descdata);

    2。霓虹灯

    Bitmap desc = new Bitmap(source.Width, source.Height);
    BitmapData sourcedata 
    = source.LockBits(new Rectangle(00, source.Width, source.Height), 
                    ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
    BitmapData descdata 
    = desc.LockBits(new Rectangle(00, desc.Width, desc.Height),
                    ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);

    unsafe
    {
          
    byte* sourceptr = (byte*)sourcedata.Scan0;  
          
    byte* descptr = (byte*)descdata.Scan0;
          
    int step = source.Width * 3;
          
    double value;
          
    for (int x = 0; x < source.Height; x++)
          {
               
    for (int y = 0; y < source.Width; y++)
               {
                    value 
    = 2 * Math.Sqrt((*sourceptr - *(sourceptr + 3)) * (*sourceptr - *(sourceptr + 3)) +
                            (
    *sourceptr - *(sourceptr + step)) * (*sourceptr - *(sourceptr + step)));
                    
    *(descptr++= value > 255 ? (byte)255 : (byte)(value);
                    sourceptr
    ++;
                }
                sourceptr 
    += sourcedata.Stride - source.Width * 3;
                descptr 
    += descdata.Stride - desc.Width * 3;
           }
    }
    source.UnlockBits(sourcedata);
    desc.UnlockBits(descdata);

    3。浮雕

     Bitmap desc = new Bitmap(source.Width, source.Height);

    BitmapData sourcedata = source.LockBits(new Rectangle(00, source.Width, source.Height), 
                    ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
    BitmapData descdata 
    = desc.LockBits(new Rectangle(00, desc.Width, desc.Height),
                    ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);

    unsafe
    {
          
    byte* sourceptr = (byte*)sourcedata.Scan0;  
          
    byte* descptr = (byte*)descdata.Scan0;
          
    int step = (source.Width + 1* 3;
          
    double value;
          
    for (int x = 0; x < source.Height; x++)
          {
               
    for (int y = 0; y < source.Width; y++)
               {
                    value 
    = Math.Abs(*(sourceptr - step) - *sourceptr + 128);
                    
    *(descptr++= value > 255 ? (byte)255 : (byte)(value);
                    sourceptr
    ++;
                }
                sourceptr 
    += sourcedata.Stride - source.Width * 3;
                descptr 
    += descdata.Stride - desc.Width * 3;
           }
    }
    source.UnlockBits(sourcedata);
    desc.UnlockBits(descdata);
  • 相关阅读:
    牛客练习赛71 F-红蓝图 (kruskal重构树 + 线段树合并)
    2020杭电多校第一场 Finding a MEX
    Codeforces 235C Cyclical Quest (后缀自动机)
    HDu6583 Typewriter (后缀自动机 + dp)
    2020牛客暑期多校训练营(第八场)A All-Star Game
    HDu4416 Good Article Good sentence (后缀自动机)
    icpc小米 A . Intelligent Warehouse
    计数类dp
    主席树
    博弈论
  • 原文地址:https://www.cnblogs.com/pennant/p/1821832.html
Copyright © 2020-2023  润新知