MAUI: преобразовать FileImageSource в byte[]C#

Место общения программистов C#
Ответить
Anonymous
 MAUI: преобразовать FileImageSource в byte[]

Сообщение Anonymous »

Я хочу преобразовать изображение, прочитанное следующим образом: ImageSource.FromFile("hole_in_wall.jpg"), в byte[], чтобы я мог сохранить изображение в базе данных и использовать его в byte[] позже для отображения изображение.
Сначала я попробовал этот метод, который нашел в этом посте, но у меня это не сработало, потому что он не мог преобразовать FileImageSource в StreamImageSource.

Код: Выделить всё

public static async Task ImageSourceToByteArrayAsync(ImageSource imageSource)
{

Stream stream = await ((StreamImageSource)imageSource).Stream(CancellationToken.None);
byte[] bytesAvailable = new byte[stream.Length];
stream.Read(bytesAvailable, 0, bytesAvailable.Length);

return bytesAvailable;
}
Я также попробовал большинство других ответов, но без особого успеха.
После этого я попытался использовать эту функцию:

Код: Выделить всё

public static async Task FileImageSourceToByteArrayAsync(FileImageSource fileImageSource)
{
// Get the file path from the FileImageSource
var filePath = fileImageSource.File;

// Check if the file exists
if (!File.Exists(filePath))
{
throw new FileNotFoundException($"The file '{filePath}' does not exist.");
}

// Read the file into a byte array
return await File.ReadAllBytesAsync(filePath);
}
Дело в том, что когда я читаю изображение, как указано выше, с помощью ImageSource.FromFile("filename"), я получаю исключение в этой функции, что filePath не существует. В этом нет особого смысла, потому что именно так я постоянно читаю изображения. Мое изображение является EmbeddedResource.
Поэтому я ищу конкретный ответ, как прочитать локальное изображение из папки ресурсов и преобразовать его в byte[], который я смогу сохранить и скрыть позже. на изображение, чтобы отобразить его.

Подробнее здесь: https://stackoverflow.com/questions/769 ... ce-to-byte
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»