Я пытаюсь преобразовать изображение 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());
}
}
Пожалуйста, предложите мне, что я делаю неправильно и как добиться и возможные способы для этого преобразования и загрузки.
Спасибо,