清除图片周围的空白区域

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class ImageUtil
    {
        public static void  ClearBlank(string sourceFileName,out int x,out int y,out int w,out int h)
        {
            using (var image = new Bitmap(sourceFileName))
            {
                //获取图像的BitmapData对像
                var data = image.LockBits(new Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
                //循环处理
                var minW = 1000000;
                var maxW = 0;
                var minH = 1000000;
                var maxH = 0;

                unsafe
                {
                    byte* ptr = (byte*)(data.Scan0.ToPointer());
                    for (var i = 0; i < data.Height; i++)
                    {
                        for (var j = 0; j < data.Width; j++)
                        {
                            var a = Convert.ToInt32(ptr[0].ToString());
                            var b = Convert.ToInt32(ptr[1].ToString());
                            var c = Convert.ToInt32(ptr[2].ToString());

                            if (a < 150 && b < 150 && c < 150)
                            {
                                if ((j + 1) > maxW)
                                {
                                    maxW = j + 1;
                                }
                                if ((i + 1) > maxH)
                                {
                                    maxH = i + 1;
                                }

                                if ((j + 1) < minW)
                                {
                                    minW = j + 1;
                                }
                                if ((i + 1) < minH)
                                {
                                    minH = i + 1;
                                }
                            }
                            ptr += 3;
                        }
                        ptr += data.Stride - data.Width * 3;
                    }
                }
                x = minW;
                y = minH;
                w = maxW - minW;
                h = maxH - minH;
            }
        } } }
原文地址:https://www.cnblogs.com/littlehb/p/5119123.html