将图像作为字节数组发送到REST服务

时间:2017-06-22 11:34:50

标签: c# image rest image-processing byte

我正在开发一项REST服务,用于操作图像,例如,改变亮度或对比度。我目前有一个Windows表单应用程序,在我将图像发送到其余部分之前,我将其上传到该处。

这是我到目前为止在Rest上接收字节的代码:

IRestServiceImpl.cs

[OperationContract]
[WebInvoke(Method = "POST",
    ResponseFormat = WebMessageFormat.Json,
    BodyStyle = WebMessageBodyStyle.Wrapped,
    UriTemplate = "json/{id}")]
string jsonData(byte[] id);

RestServiceImpl.svc.cs

public string jsonData(byte[] id) {
    return "The byte array is" + id;
}

这是我尝试从表单发送它,但它只是在Visual Studio的控制台中返回空白。

private async void btnRestSend_Click(object sender, EventArgs e) {

        byte[] byteArray = ImageManipulation.ImgToByte(pictureBox1.Image);
        ByteArrayContent byteContent = new ByteArrayContent(byteArray);
        var url = "http://localhost:52278/RestServiceImpl.svc/json/";
        HttpClient client = new HttpClient();

        HttpResponseMessage response = await client.PostAsync(new Uri(url), byteContent);

        string responseBody = await response.Content.ReadAsStringAsync();

        Console.WriteLine(responseBody);
}

ImgToByte

public static byte[] ImgToByte(Image img) {
    //Converts an Image to a Byte
    ImageConverter converter = new ImageConverter();
    return (byte[])converter.ConvertTo(img, typeof(byte[]));
}

如何将字节数组成功发送到其余服务,以便我可以在那里操作它?

提前致谢:)

1 个答案:

答案 0 :(得分:0)

您可以将字节数组转换为base 64字符串,以便将其作为字符串或JSON对象发送到前端。

string base64Image = Convert.ToBase64String(byteArray);    

*转换属于系统库