Я работаю над функцией, которая делает фотографию и конвертирует ее в строку base64. Но по какой-то причине, и я попытался найти это, Convert.ToBase64String
всегда поворачивает мое изображение на 90 градусов против часовой стрелки. Я пытался найти это, но не смог найти никого с проблемой similair. Вот код
private async Task<string> GetPhotoBase64StringAsync(int compressionQuality = 50, PhotoSize photoSize = PhotoSize.Medium)
{
string filename = $"{DateTime.Now.ToString("MMddyyyy_Hmmtt")}.jpg";
var photo = await UtilityService.OpenCameraAsync(filename, compressionQuality, photoSize);
if (photo != null)
{
var bytes = await photo.GetStream().ConvertToBytes();
var base64string = Convert.ToBase64String(bytes);
return base64string
}
return string.Empty;
}
photo
- это объект, который возвращается используемым им плагином xamarin. Я точно знаю, что плагин возвращает изображение в правильной ориентации, потому что я отображал его позже, а он не поворачивался.
Проблема возникает, когда я конвертирую изображение в поток и из потока в base64. Если бы я установил точку останова на return base64string
, скопировал и вставил строку base64 в онлайн-конверсию base64 в изображение, изображение получилось бы повернутым на 90 градусов против часовой стрелки.
я тоже пробовал
var base64string = bytes.ToBase64String();
но это тоже не сработало.
Это так странно, и я никогда не сталкивался с этим раньше.