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;
         }
  • 相关阅读:
    hello world之vivado程序解决方法
    FPGA的电源选择重要性分析
    RabbitMQ的简单使用
    RabbitMQ的相关概念
    Spring整合Quartz
    DisallowConcurrentExecution注解
    Quartz框架中的监听器
    JobStore使用
    quartz基本介绍
    java自定义注解
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/6912731.html
Copyright © 2011-2022 走看看