Я пытаюсь преобразовать изображение HEIC в код Jpg из приведенного ниже кода при использовании службы зависимостей и пытаюсь отобразить его с помощью изображения и загрузить в веб-API.
Но оба не работают, это правильный способ преобразования HEIC в Jpg? если нет, подскажите, пожалуйста, как этого добиться.
Метод обслуживания зависимостей:
public byte[] GetJpgFromHEIC(string path)
{
byte[] imageAsBytes = File.ReadAllBytes(path);
UIImage images = new UIImage(NSData.FromArray(imageAsBytes));
byte[] bytes = images.AsJPEG().ToArray();
// Stream imgStream = new MemoryStream(bytes);
return bytes;
}
В коде Xaml за отображением изображения:
Image image = new Image(){};
byte[] bytes = DependencyService.Get<ICommonHelper>
().GetJpgFromHEIC(fileData.FileName);
image.Source = ImageSource.FromStream(() => new MemoryStream(bytes));
Загрузка кода в веб-API:
Пробовал в StreamContent и ByteArrayContent как HttpContent, как показано ниже
HttpResponseMessage response = null;
string filename = data.FileName; // here data object is a FileData, picked from using FilePicker.
byte[] fileBytes = DependencyService.Get<ICommonHelper>().GetJpgFromHEIC(data.FilePath);
HttpContent fileContent = new ByteArrayContent(fileBytes);
// Stream fileStream = new MemoryStream(fileBytes);
// HttpContent fileContent = new StreamContent(fileStream);
fileContent.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") { Name =
"file", FileName = data.FileName };
fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
using (var formData = new MultipartFormDataContent())
{
formData.Add(fileContent);
response = await client.PostAsync(uri, formData);
if (response.IsSuccessStatusCode)
{
Debug.WriteLine(@" Upload CommentsAttachments SUCCESS>> " + response.Content.ToString());
}
}
Пожалуйста, предложите мне, что я делаю не так, и как добиться и возможные пути для этого преобразования и загрузки.
Спасибо,