Выберите изображение из прямоугольника, используя 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.