图片转二进制的相互转化

// 图片转换成二进制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static byte[] ImageDatabytes(string FilePath)
{
    if (!File.Exists(FilePath))
        return null;
    Bitmap myBitmap = new Bitmap(Image.FromFile(FilePath));
 
    using (MemoryStream curImageStream = new MemoryStream())
    {
        myBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Png);
        curImageStream.Flush();
 
        byte[] bmpBytes = curImageStream.ToArray();
        //如果转字符串的话
        //string BmpStr = Convert.ToBase64String(bmpBytes);
        return bmpBytes;
    }
}

  //二进制转化图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static Bitmap GetImage(byte[] ImageDatas)
{
    try
    {
        //如果是字符串的话
        //byte[] resultBytes = Convert.FromBase64String(ImageDatas);
        using (MemoryStream ImageMS = new MemoryStream())
        {
            ImageMS.Write(ImageDatas, 0, ImageDatas.Length);
 
            Bitmap resultBitmap = new Bitmap(ImageMS);
            return resultBitmap;
        }
    }
    catch
    {
        return null;
    }
}

  二进制图片上传

复制代码
public class ImageUploader
{
    private static readonly HttpClient client = new HttpClient();
 
    public async Task UploadImageAsync(string imagePath, string uploadUrl)
    {
        // 将图片转换为二进制
        byte[] imageBytes = File.ReadAllBytes(imagePath);
 
        // 使用HttpClient上传二进制数据
        ByteArrayContent content = new ByteArrayContent(imageBytes);
        var response = await client.PostAsync(uploadUrl, content);
 
        // 检查响应状态
        response.EnsureSuccessStatusCode();
        string responseBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine(responseBody);
    }
}
 
// 使用示例
class Program
{
    static async Task Main(string[] args)
    {
        ImageUploader uploader = new ImageUploader();
        string imagePath = "path/to/your/image.jpg";
        string uploadUrl = "http://yourserver.com/upload";
        await uploader.UploadImageAsync(imagePath, uploadUrl);
    }
}
复制代码

 

posted @   一招致命九虎山  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
点击右上角即可分享
微信分享提示