.net图片自动裁剪白边函数案例

1.项目要求上传白底的图片要进行裁剪白边,于是同事谢了个函数感觉很好用。

2.

  #region 剪切白边
        /// <summary>
        /// 剪切白边
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static Image Crop(Image p)
        {
            int x, y ;//for use of X,Y Coordinates of pixels
            Bitmap b = new Bitmap(p); //image needed to crop
            Color c = new Color(); //pixel color for use of identifying if background
            int intLeft=0;//furthest left X coordinate
            int intRight=0;//furthest right X coordinate
            int intBottom =0;//furthest to the bottom Y coordinate
            int intTop =0;
            y = 0;
            while(y < b.Height)
            {
                x = 0;
                while (x < b.Width) //loop through pixels on X axis until end of image width
                {
                    c = b.GetPixel(x, y); //Get the color of the pixel
                    if (c.R != 255&&c.R!=0 && c.G != 255&&c.G!=0 && c.B != 255&&c.B!=0)
                    {
                        if (c.R < 240 || c.G < 240 || c.B < 240)
                        {
                            //Determine if pixel is further left than the value we already have
                            if (intLeft == 0 || intLeft > x )
                            {
                                intLeft = x;
                            }
                            //Determine if pixel is further to the top than the value we already have
                            if (intTop == 0 || intTop > y )
                            {
                                intTop = y;
                            }
                            //Determine if pixel is further right than the value we already have
                            if (intRight <= b.Width && intRight < x )
                            {
                                intRight = x;
                            }
                            //Determine if pixel is further to the bottom than the value we already have
                            if (intBottom <= b.Height && intBottom < y )
                            {
                                intBottom = y;
                            }
                        }
                    }
                    x += 1;
                }
                y += 1;
            }
            int intNewWidth = intRight; //Establish width of new cropped image
            int intNewHeight = intBottom; //Establish height of new cropped image
            Bitmap imgCropped =new Bitmap(intNewWidth - intLeft + 2, intNewHeight - intTop + 2);
            Graphics objGraphics = Graphics.FromImage(imgCropped);
            //set the background color to white (you can choose what you like
            objGraphics.Clear(System.Drawing.Color.Transparent);
            int intStartTop = 1 - intTop; /// 40 + 5
            int intStartLeft = 1 - intLeft; /// 40 + 5
            //Draw the original image to your new cropped sized image
            objGraphics.DrawImage(b, intStartLeft, intStartTop);
            b.Dispose();
            objGraphics.Dispose();
            //return the Cropped image to the caller
            return imgCropped;
        }
时间: 2024-11-07 12:45:25

.net图片自动裁剪白边函数案例的相关文章

使用nginx+lua+GraphicsMagick实现图片自动 裁剪

在做网站尤其是以内容为主的过程中,常常会遇到一张图片各种地方都要引用,且每个引用的地方要求的图片尺寸都不一样的.一般中大型的网站都会对这一类的图片做自动裁剪功能.本文介绍在centos6操作系统上,采用nginx.lua和GraphicsMagick工具简单实现图片的自动裁剪功能.其中nginx负责展示图片和调度lua脚本,GraphicsMagick负责对原图进行裁剪. 一.基础软件包安装groupadd wwwuseradd -g www www -s /bin/falseyum -y in

最新 IOS应用开发Icon规格自动裁剪器(C#)

老早之前做IOS APP开发,为折腾一个IOS应用的Icon,用C#写了一个简单的IOS应用开发Icon规格自动裁剪器,但时过境迁,目前IOS设备屏幕规格也是越来越多,一个版本就要生成好几种规格分辨率的Icon,用PS什么的一个一个生成费劲,如果Icon有变动又得重新生成一次,所以还是整个程序来干这活比较轻松. 思路很简单,先导入一张大图(注意:这张图必须大于等于1024*1024,因为[email protected]的规格是1024*1024),然后生成对应像素的小图,最后保存出来. 首先来

Qt 制作透明背景图片与裁剪图片(很实用)

这两天想做一个五子棋游戏,想从零开始自己绘制各种图片素材,将经验心得整理如下. 制作透明背景图片: void MyPainter::DrawKit() { QImage image(30, 30, QImage::Format_ARGB32); memset(image.bits(), 0x00, image.byteCount()); // 绘制图片 QPainter painter(&image); painter.setPen(QPen(Qt::red, 2, Qt::SolidLine)

面向对象之图片自动切换

图片自动切换一: css样式: <style> *{ padding: 0; margin: 0; } div{ width:600px; height: 320px; background-color: pink; margin:10px auto; text-align: center; border-radius: 30px; } input{ width: 50px; height: 30px; } ul li{ list-style-type: none; margin-top: 1

JS图片自动轮换效果实现

今天不在状态,五一快到了,俺就特想玩了.好了,天色已晚,闲话不多说,看下用javaScript 实现的图片自动轮换效果,先看图片 下面是具体的代码,还是比较简单的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="htt

第七篇、OC_图片的裁剪基于SDWebImage

前期有段时间困扰了我很久一个问题由于工程中的图片数据抓取自不同平台,所以图片的大小尺寸不一定,而放置图片的imageView尺寸是一定的,不作任何处理的话会导致图片拉伸变形,因此找了好久解决办法,现把它拿出来. #import <UIKit/UIKit.h> #import "UIImageView+WebCache.h" @interface UIImageView (WebImage) /** * @author Tucai, 16-02-23 12:02:53 * *

jquery 图片自动无缝滚动

<!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jquery 图片自动无缝滚动</title> <script src="JQ/jquery-

PHP图片自动裁切

PHP图片自动裁切  如果做过那种门户站的朋友,肯定知道,一张图片可能会在不同的地方显示,大小不同,比例也不同, 如果只用一张图的话,那么肯定会变形,而且在显示小图的地方,链接 大图,又太浪费了.....用缩略图来处理,也不完美,因为每个地方出现的比例 大小可能都不一样 ,举个例子!!!!!!!!!!!! 请看上图. 在这个地方,其实调去出来的是一个列表,但是 图片的大小是不一样的,有多大宽有的窄,,当遇到这样的情况的时候 你们怎么办呢,如果直接用原来的地址,肯定是会变形的,如果搞缩略图也不靠谱

在Android中实现图片的裁剪

    本实例的功能室将用户选择的图片裁剪后放入ImagView,布局文件是个Button和ImageView.为了图片的正常显示,我们在裁剪后先将裁剪好的图片先存放到SD卡中,这样就能在以后开启应用的时候直接调用了. main_activity.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.androi