C#图片转byte数组,再转为base64通过json传值

今天在公司实习遇到问题,要求编写接口传图片到dynamics crm 365 系统,实体字段entityimage类型为图片,实际上就是byte数组。

//将图片的路径转为Image类型
        public System.Drawing.Image LoadImage(string path) {
            
            //创建一个bitmap类型的bmp变量来读取文件。
            Bitmap bmp = new Bitmap(path);
            //新建第二个bitmap类型的bmp2变量,我这里是根据我的程序需要设置的。
            Bitmap bmp2 = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format16bppRgb555);
            //将第一个bmp拷贝到bmp2中
            Graphics draw = Graphics.FromImage(bmp2);
            draw.DrawImage(bmp, 0, 0);

            draw.Dispose();
            bmp.Dispose();//释放bmp文件资源

            return (System.Drawing.Image)bmp2;
        }

        /// <summary>
        /// 将图片转为二进制
        /// </summary>
        /// <param name="img">图片</param>
        /// <returns></returns>
        public byte[] GetByteImage(System.Drawing.Image img) {

            byte[] bt = null;
            if (!img.Equals(null)) {
                using (MemoryStream mostream = new MemoryStream()) {
                    Bitmap bmp = new Bitmap(img);

                    bmp.Save(mostream, System.Drawing.Imaging.ImageFormat.Jpeg);//将图像以指定的格式存入缓存内存流

                    bt = new byte[mostream.Length];

                    mostream.Position = 0;//设置留的初始位置

                    mostream.Read(bt, 0, Convert.ToInt32(bt.Length));

                }
            }
            return bt;
        }

转为base64主程序

namespace ConsoleApp1 {
	class Program {
		static void Main(string[] args) {
			Test test = new Test();

			string path = @"F:\123.jpg";

			Image image = test.LoadImage(path);
			byte[] photo = test.GetByteImage(image);
			string pic = Convert.ToBase64String(photo);

			Console.WriteLine(pic);
		}
	}
}

这样控制台会输出图片的base64类型,这样就可以用postman通过json传值了,这里的member_photo是byte[]类型
在这里插入图片描述
而代码中传的值将base64以byte[]储存了
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值