zoukankan      html  css  js  c++  java
  • C#将图片进行马赛克处理

    /// <summary>
         /// 马赛克处理
         /// </summary>
         /// <param name="bitmap"></param>
         /// <param name="effectWidth"> 影响范围 每一个格子数 </param>
         /// <returns></returns>
         public System.Drawing.Bitmap AdjustTobMosaic(System.Drawing.Bitmap bitmap, int effectWidth)
         {
             // 差异最多的就是以照一定范围取样 玩之后直接去下一个范围
             for (int heightOfffset = 0; heightOfffset < bitmap.Height; heightOfffset += effectWidth)
             {
                 for (int widthOffset =0; widthOffset < bitmap.Width; widthOffset += effectWidth)
                 {
                     int avgR = 0, avgG = 0, avgB = 0;
                     int blurPixelCount = 0;
     
                     for (int x = widthOffset; (x < widthOffset + effectWidth && x < bitmap.Width); x++)
                     {
                         for (int y = heightOfffset; (y < heightOfffset + effectWidth && y < bitmap.Height); y++)
                         {
                             System.Drawing.Color pixel = bitmap.GetPixel(x, y);
     
                             avgR += pixel.R;
                             avgG += pixel.G;
                             avgB += pixel.B;
     
                             blurPixelCount++;
                         }
                     }
     
                     // 计算范围平均
                     avgR = avgR / blurPixelCount;
                     avgG = avgG / blurPixelCount;
                     avgB = avgB / blurPixelCount;
     
     
                     // 所有范围内都设定此值
                     for (int x = widthOffset; (x < widthOffset + effectWidth && x < bitmap.Width); x++)
                     {
                         for (int y = heightOfffset; (y < heightOfffset + effectWidth && y < bitmap.Height); y++)
                         {
     
                             System.Drawing.Color newColor = System.Drawing.Color.FromArgb(avgR, avgG, avgB);
                             bitmap.SetPixel(x, y, newColor);
                         }
                     }
                 }
             }
     
             return bitmap;
         }
  • 相关阅读:
    python2代码改成python3踩过的坑
    Mac下为什么有的文件名后带一个* 星号?
    Mac 的 Vim 中 delete 键失效的原因和解决方案(转)
    使用pandas处理大型CSV文件(转)
    Java基础——02
    javaee相关基础
    Cookie&Session笔记
    EL&JSTL笔记------jsp
    JavaWeb基础
    Java基础——01
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/6912731.html
Copyright © 2011-2022 走看看