C#一些图像处理的函数

 1         /// <summary>
 2         /// 图像URL地址转byte数组
 3         /// </summary>
 4         /// <param name="FileUrl">图像URL地址</param>
 5         /// <returns>图像的byte数组</returns>
 6         public static byte[] UrlToByte(string FileUrl)
 7         {
 8             return File.ReadAllBytes(FileUrl);
 9         }
10 
11         /// <summary>
12         /// 图像byte数组转图像
13         /// </summary>
14         /// <param name="ByteOfImg">图像的byte数组</param>
15         /// <returns>图像</returns>
16         public static Image ByteToImage(byte[] ByteOfImg)
17         {
18             MemoryStream ms = new MemoryStream(ByteOfImg);
19             Image image = Image.FromStream(ms);
20             ms.Dispose();
21             return image;
22         }
23 
24         /// <summary>
25         /// 图像转byte数组
26         /// </summary>
27         /// <param name="img">图像</param>
28         /// <returns>图像的byte数组</returns>
29         public static byte[] ImageToByte(Image img)
30         {
31             MemoryStream mstream = new MemoryStream();
32             img.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);
33             byte[] byData = new Byte[mstream.Length];
34             mstream.Position = 0;
35             mstream.Read(byData, 0, byData.Length);
36             mstream.Close();
37             return byData;
38         } 
39 
40 
41         /// <summary>
42         /// 图像转灰度分量
43         /// </summary>
44         /// <param name="img">图像</param>
45         /// <returns>图像的灰度分量</returns>
46         public static byte[] ImageToY(Image img)
47         {
48             int Var_H = img.Height;
49             int Var_W = img.Width;
50             int tem_r, tem_g, tem_b = 0;
51             int length = 0;
52             Bitmap Var_SaveBmp = (Bitmap)img;
53             byte[] gray = new byte[Var_H * Var_W];
54 
55             for (int j = 0; j < Var_H; j++)
56                 for (int i = 0; i < Var_W; i++)
57                 {
58                     Color tem_color = Var_SaveBmp.GetPixel(i, j);
59                     tem_r = tem_color.R;
60                     tem_g = tem_color.G;
61                     tem_b = tem_color.B;
62                     gray[length++] = (byte)((tem_r * 38 + tem_g * 75 + tem_b * 15) >> 7);      //Gray = (R*38 + G*75 + B*15) >> 7
63                 }
64             return gray;
65         }

 

转载于:https://www.cnblogs.com/kim-cst-dlt/p/4812779.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值