C#彩色图片灰度化算法实例

本文实例讲述了C#彩色图片灰度化实现方法。分享给大家供大家参考。具体方法如下:

主要功能代码如下:

代码如下:

public static Bitmap MakeGrayscale(Bitmap original)

{

//create a blank bitmap the same size as original

Bitmap newBitmap = new Bitmap(original.Width, original.Height);

//get a graphics object from the new image

Graphics g = Graphics.FromImage(newBitmap);

//create the grayscale ColorMatrix

System.Drawing.Imaging.ColorMatrix colorMatrix = new System.Drawing.Imaging.ColorMatrix(

new float[][]

{

new float[] {.3f, .3f, .3f, 0, 0},

new float[] {.59f, .59f, .59f, 0, 0},

new float[] {.11f, .11f, .11f, 0, 0},

new float[] {0, 0, 0, 1, 0},

new float[] {0, 0, 0, 0, 1}

});

//create some image attributes

System.Drawing.Imaging.ImageAttributes attributes = new System.Drawing.Imaging.ImageAttributes();

//set the color matrix attribute

attributes.SetColorMatrix(colorMatrix);

//draw the original image on the new image

//using the grayscale color matrix

g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);

//dispose the Graphics object

g.Dispose();

return newBitmap;

}

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • c#实现抓取高清美女妹纸图片

    c#实现抓取高清美女妹纸图片 复制代码 代码如下: private void DoFetch(int pageNum)         {             ThreadPool.QueueUserWorkItem(_ =>             {                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://me2-sex.lofter.com/tag/美女摄影?page=&

  • C#实现的图片、string相互转换类分享

    C#中,Image为源自 Bitmap 和 Metafile 的类提供功能的抽象基类,也就是说更通用,当我们用Image.FromFile("xxx")时创建出来的是Image的某个派生类实体,所以我用Image作为参数,而不是Bitmap之类的. 图片在于string转换的时候中间借助于MemorySteam和Byte数组,下面是我写的FormatChange类,里面两个互相转换的过程.当然这里面也就包含了图片与Byte[]数组的相互转换喽. class FormatChange {

  • C#实现为一张大尺寸图片创建缩略图的方法

    本文实例讲述了C#实现为一张大尺寸图片创建缩略图的方法.分享给大家供大家参考.具体实现方法如下: public static Bitmap CreateThumbnail(string lcFilename, int lnWidth, int lnHeight) { System.Drawing.Bitmap bmpOut = null; try { Bitmap loBMP = new Bitmap(lcFilename); ImageFormat loFormat = loBMP.RawFo

  • C#使用Socket上传并保存图片的方法

    本文实例讲述了C#使用Socket上传并保存图片的方法.分享给大家供大家参考.具分析如下: 使用string filename = openFile.FileName;即返回带全路径的文件名 Path.GetFileNameWithoutExtension(filename)即可获得不带路径.后缀名的文件名. 上传图片使用二进制 tcp协议上传的 客户端代码: using System; using System.Collections.Generic; using System.Compone

  • C#实现将Email地址转成图片显示的方法

    本文实例讲述了C#实现将Email地址转成图片显示的方法.分享给大家供大家参考.具体实现方法如下: private final static IndexColorModel icm = createIndexColorModel(); /** * 生成电子邮件图片 * @param email * @param out * @throws IOException */ public static void MakeEmailImage(String email, OutputStream out

  • C#给图片加水印的简单实现方法

    本文实例讲述了C#给图片加水印的简单实现方法.分享给大家供大家参考.具体分析如下: 这里实现本网站图片保护功能类: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing;//image的命名空间 namespace 实现本网站图片保护功能 { public class yanzhengma:IHttpHandler { public boo

  • C#实现在服务器端裁剪图片的方法

    本文实例讲述了C#实现在服务器端裁剪图片的方法.分享给大家供大家参考.具体实现方法如下: //图片路径 String oldPath = Server.MapPath("~/62223231.jpg"); //新图片路径 String newPath = System.IO.Path.GetExtension(oldPath); //设置截取的坐标和大小 int x = 0, y = 20, width = 200, height = 2400; //计算新的文件名,在旧文件名后加_n

  • C#中图片旋转和翻转(RotateFlipType)用法分析

    本文实例分析了C#中图片旋转和翻转(RotateFlipType)用法.分享给大家供大家参考.具体如下: 首次接触Image.RotateFlip时可能会对它的旋转方式搞糊涂,其中旋转时有许多参数如: 1.Rotate90FlipX 2.Rotate90FliY 3.Rotate90FlipXY 4.Rotate90FlipNone 以上面四个为例: 1是指定后接水平翻转的90度顺时针旋转, 2是指定后接垂直翻转的90度顺时针旋转, 3是指定后接水平翻转和垂直翻转的90度顺时针旋转, 4是指定不

  • C#识别出图片里的数字和字母

    一个图片识别小工具,原先主要是识别以前公司的软件注册码截图里的数字和字母(每次要一个一个框复制出来粘贴到注册器里,很麻烦!),因为注册码出现的字母和数字基本就那几个,所以识别库的范围设定的比较少. 原理和算法在代码中做了详细说明,功能存在很大的局限性,但我的想法是把这个思路和实现的办法共享出来. 源码下载地址: http://git.oschina.net/bobo2cj/iamge2text /* * 开发思路:图片灰度处理,二进制,然后和图片中的字二进制库精确对比 * * 获取字库:通过下面

  • C#图片上传效果实例分析

    本文实例讲述了C#图片上传效果实现方法.分享给大家供大家参考.具体如下: <%@ Page Title="" Language="C#" MasterPageFile="~/Default.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %> <asp:Conte

随机推荐