Как преобразовать ImageSource в Bitmap для кроссплатформенного проекта (xamarin) - PullRequest
0 голосов
/ 19 февраля 2019

Я нашел пример, но в этом примере используется класс * System * Windows * Int32Rect . Мы не можем использовать эту библиотеку для Android или IOS

Для растрового изображения я использую System.Drawing.Common

public static System.Drawing.Bitmap BitmapSourceToBitmap2(BitmapSource srs)
        {
            int width = srs.PixelWidth;
            int height = srs.PixelHeight;
            int stride = width * ((srs.Format.BitsPerPixel + 7) / 8);
            IntPtr ptr = IntPtr.Zero;
            try
            {
                ptr = Marshal.AllocHGlobal(height * stride);
                srs.CopyPixels(new Int32Rect(0, 0, width, height), ptr, height * stride, stride);
                using (var btm = new System.Drawing.Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format1bppIndexed, ptr))
                {
                    // Clone the bitmap so that we can dispose it and
                    // release the unmanaged memory at ptr
                    return new System.Drawing.Bitmap(btm);
                }
            }
            finally
            {
                if (ptr != IntPtr.Zero)
                    Marshal.FreeHGlobal(ptr);
            }
        }

Итак, как преобразовать ImageSource в растровое изображение для кроссплатформенного проекта?

Я пыталсячтобы следовать руководству , в нем была неполная информация, и я попытался заполнить занижение самостоятельно

Проект даже компилируется!Однако, когда я пытаюсь получить результат из метода GetBitmapFromImageSourceAsync (…), приложение зависает (бесконечный цикл)

var test = GetBitmapFromImageSourceAsync(image, Android.App.Application.Context);
var bitmap = test.Result;

Пожалуйста, посмотрите, почему это не работает?Или, пожалуйста, дайте мне ссылку на ваш проект, и я выясню это

https://github.com/StriBog45/XamarinImage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...