Выберите изображение из прямоугольника, используя writeablebitmap

Я написал приложение в Silverlight, я помещаю прямоугольник на изображение и хочу выделить часть изображения, покрытую прямоугольником, и показать ее на элементе управления изображениями одним нажатием кнопки.

Я не очень хорош в обработке соотношений и манипуляций с изображениями, поэтому я не могу понять это правильно.

Код для того же самого идет как ниже, и был бы признателен, если бы кто-нибудь мог предложить мне способ или решение, чтобы обойти это.

public void CaptureImage(object sender, RoutedEventArgs e)
{
            BitmapImage bitmapImage = new BitmapImage();
            //// bitmapImage.CreateOptions = BitmapCreateOptions.None;
            bitmapImage = NewImage;

            ////calculate bounding box
            int originalWidth = bitmapImage.PixelWidth;
            int originalHeight = bitmapImage.PixelHeight;

            int newSmallWidth = (int)SquareBlue.Width;
            int newSmallHeight = (int)SquareBlue.Height;

            ////generate temporary control to render image
            Image temporaryImage = new Image { Source = bitmapImage, Width = newSmallWidth, Height = newSmallHeight };

            ////create writeablebitmap
            WriteableBitmap wb = new WriteableBitmap(newSmallWidth, newSmallHeight);

            TranslateTransform t = new TranslateTransform();
            t.X = -5;
            t.Y = -5;

            wb.Render(temporaryImage, t);

            wb.Invalidate();

            myImage.Source = wb;
   }

Всякий раз, когда исполняется этот код, снимается целое изображение вместо части, выбранной прямоугольником. Может ли кто-нибудь, направить меня, как то, что я здесь делаю неправильно.

1 ответ

Я бы порекомендовал вам использовать метод Crop, который предоставляет библиотека WriteableBitmapEx.

Другие вопросы по тегам