Преобразование растрового изображения Xamarin в byte [] не работает или вызывает исключение - PullRequest
1 голос
/ 06 мая 2020

Я попытался преобразовать свое изображение с камеры в байт [], а затем сделал запрос на мой сервер, но он не работает, поэтому мое изображение с камеры

var image = textureView.Bitmap;
image = Android.Graphics.Bitmap.CreateBitmap
    (image,
    (int)OCR_Rectangle.GetX(),
    (int)OCR_Rectangle.GetY(),
    OCR_Rectangle.Width,
    OCR_Rectangle.Height);

Мой веб-запрос:

public async static Task<string> ParseAsync(byte[] image)
{
    string id = "my id ";
    string apiKey = "my api key ";
    using (var httpClient = new HttpClient())
    {
        httpClient.DefaultRequestHeaders.TryAddWithoutValidation("app_id", id);
        httpClient.DefaultRequestHeaders.TryAddWithoutValidation("app_key", apiKey);
        var base64 = Convert.ToBase64String(image);
        var imageUri = "data:image/jpg;base64," + base64;
        var json = JsonConvert.SerializeObject(new { src = imageUri });
        var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
        var response = await httpClient.PostAsync("my website", content);
        var dynObj = JsonConvert.DeserializeObject<RootObjectLatex>(await response.Content.ReadAsStringAsync());
        return dynObj.latex;
    }
}

Вот моя попытка преобразовать растровое изображение в байт []

byte[] bitmapData;
using (var stream = new MemoryStream())
{
    image.Compress(Bitmap.CompressFormat.Png, 0, stream);
    bitmapData = stream.ToArray();
}

И затем я хочу использовать bitmapData в моем запросе, но не повезло.

1 Ответ

0 голосов
/ 06 мая 2020

Итак, я обнаружил ошибку, это работает

byte[] bitmapData;
using (var stream = new MemoryStream())
{
    image.Compress(Bitmap.CompressFormat.Png, 0, stream);
    bitmapData = stream.ToArray();
}

, но я ввожу неправильный ключ api в свой запрос

...