Это мое первое пилотное мобильное приложение.
Я установил мобильное приложение для Мауи, и оно может успешно захватывать и сохранять изображение с камеры в виде файла.
Мое дальнейшее намерение — управлять файлом изображения. пиксель за пикселем (например, в серые пиксели).
Возможно, потребуется преобразовать файл в класс Bitmap.
Мне, как обычно, сложно генерировать растровое изображение.
Ниже приведено мое описание .
// Namespace using (with System.Drawing.Common ):
using System.Drawing;
//Main code:
string camPath = FileSystem.AppDataDirectory+"\\cam.jpg";
string grayPath = FileSystem.AppDataDirectory + "\\gray.jpg";
await Cameraview.SaveSnapShot(Camera.MAUI.ImageFormat.JPEG, camPath);
//Error happen at the line below
System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)System.Drawing.Image.FromFile(camPath);//Error happen here! How to rewrite this part?
System.Drawing.Bitmap newbmp = MakeGrayscale(bmp);
newbmp.Save(grayPath);
sampleImage.Source = null;
sampleImage.Source = ImageSource.FromFile(grayPath);
//call functions:
public static System.Drawing.Bitmap MakeGrayscale(System.Drawing.Bitmap original)
{
// Build a new Bitmap
System.Drawing.Bitmap newBitmap = new System.Drawing.Bitmap(original.Width, original.Height);
// set pixels to gray
for (int i = 0; i < original.Width; i++)
{
for (int j = 0; j < original.Height; j++)
{
System.Drawing.Color originalColor = original.GetPixel(i, j);
int grayScale = (int)((originalColor.R * 0.3) + (originalColor.G * 0.59) + (originalColor.B * 0.11));
System.Drawing.Color newColor = System.Drawing.Color.FromArgb(grayScale, grayScale, grayScale);
newBitmap.SetPixel(i, j, newColor);
}
}
return newBitmap;
}
public static byte[] BitmapToBytes(System.Drawing.Bitmap Bitmap)
{
System.IO.MemoryStream ms = null;
try
{
ms = new MemoryStream();
Bitmap.Save(ms, Bitmap.RawFormat);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
return null;
}
finally
{
ms.Close();
}
}
public static System.IO.Stream BytesToStream(byte[] bytes)
{
System.IO.Stream stream;
try
{
stream = new MemoryStream(bytes);
}
catch
{
return null;
}
return stream;
}
Подробнее здесь: https://stackoverflow.com/questions/781 ... mobile-app
Как преобразовать Cameraview.GetSnapShot() в растровое изображение в мобильном приложении Мауи? ⇐ C#
Место общения программистов C#
1710482550
Гость
Это мое первое пилотное мобильное приложение.
Я установил мобильное приложение для Мауи, и оно может успешно захватывать и сохранять изображение с камеры в виде файла.
Мое дальнейшее намерение — управлять файлом изображения. пиксель за пикселем (например, в серые пиксели).
Возможно, потребуется преобразовать файл в класс Bitmap.
Мне, как обычно, сложно генерировать растровое изображение.
Ниже приведено мое описание .
// Namespace using (with System.Drawing.Common ):
using System.Drawing;
//Main code:
string camPath = FileSystem.AppDataDirectory+"\\cam.jpg";
string grayPath = FileSystem.AppDataDirectory + "\\gray.jpg";
await Cameraview.SaveSnapShot(Camera.MAUI.ImageFormat.JPEG, camPath);
//Error happen at the line below
System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)System.Drawing.Image.FromFile(camPath);//Error happen here! How to rewrite this part?
System.Drawing.Bitmap newbmp = MakeGrayscale(bmp);
newbmp.Save(grayPath);
sampleImage.Source = null;
sampleImage.Source = ImageSource.FromFile(grayPath);
//call functions:
public static System.Drawing.Bitmap MakeGrayscale(System.Drawing.Bitmap original)
{
// Build a new Bitmap
System.Drawing.Bitmap newBitmap = new System.Drawing.Bitmap(original.Width, original.Height);
// set pixels to gray
for (int i = 0; i < original.Width; i++)
{
for (int j = 0; j < original.Height; j++)
{
System.Drawing.Color originalColor = original.GetPixel(i, j);
int grayScale = (int)((originalColor.R * 0.3) + (originalColor.G * 0.59) + (originalColor.B * 0.11));
System.Drawing.Color newColor = System.Drawing.Color.FromArgb(grayScale, grayScale, grayScale);
newBitmap.SetPixel(i, j, newColor);
}
}
return newBitmap;
}
public static byte[] BitmapToBytes(System.Drawing.Bitmap Bitmap)
{
System.IO.MemoryStream ms = null;
try
{
ms = new MemoryStream();
Bitmap.Save(ms, Bitmap.RawFormat);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
return null;
}
finally
{
ms.Close();
}
}
public static System.IO.Stream BytesToStream(byte[] bytes)
{
System.IO.Stream stream;
try
{
stream = new MemoryStream(bytes);
}
catch
{
return null;
}
return stream;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78164901/how-can-i-convert-cameraview-getsnapshot-to-bitmap-in-a-maui-mobile-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия