У меня есть объект BitmapImage, который содержит изображение размером 600 X 400. Теперь из моего кода на C# мне нужно создать два новых объекта BitmapImage, скажем objA и objB размером 600 X 200 каждый, так что objA содержит верхнее обрезанное изображение, а objB содержит нижнее обрезанное изображение исходного изображения.Динамически обрезать объект BitmapImage
4
A
ответ
5
BitmapSource topHalf = new CroppedBitmap(sourceBitmap, topRect);
BitmapSource bottomHalf = new CroppedBitmap(sourceBitmap, bottomRect);
Результат не BitmapImage
, но он по-прежнему в силе ImageSource
, которое должно быть хорошо, если вы просто хотите, чтобы отобразить его.
EDIT: на самом деле есть способ сделать это, но это довольно некрасиво ... Вам нужно создать Image
управления с оригинальным изображением, и использовать метод WriteableBitmap.Render
, чтобы сделать это.
Image imageControl = new Image();
imageControl.Source = originalImage;
// Required because the Image control is not part of the visual tree (see doc)
Size size = new Size(originalImage.PixelWidth, originalImage.PixelHeight);
imageControl.Measure(size);
Rect rect = new Rect(new Point(0, 0), size);
imageControl.Arrange(ref rect);
WriteableBitmap topHalf = new WriteableBitmap(originalImage.PixelWidth, originalImage.PixelHeight/2);
WriteableBitmap bottomHalf = new WriteableBitmap(originalImage.PixelWidth, originalImage.PixelHeight/2);
Transform transform = new TranslateTransform();
topHalf.Render(originalImage, transform);
transform.Y = originalImage.PixelHeight/2;
bottomHalf.Render(originalImage, transform);
Отказ от ответственности: этот код полностью непроверенной;)
Смежные вопросы
- 1. Серийный объект, содержащий BitmapImage
- 2. Заменить динамически BitmapImage в Баттона (XAML)
- 3. ImageFailed событие BitmapImage и это объект исключения
- 4. Невозможно привести объект типа «MS.Internal.NamedObject» в BitmapImage
- 5. Windows Phone - Crop BitmapImage
- 6. Как преобразовать объект WriteableBitmap в объект BitmapImage в WPF
- 7. Могу ли я обрезать таблицы динамически?
- 8. Обрезать/вырезать форму вида в андроиде динамически
- 9. Утилизация BitmapImage
- 10. Resize BitmapImage
- 11. Flex AS3: динамически создавать графику с помощью BitmapImage Ребенок
- 12. Как обнаружить и обрезать объект с изображения?
- 13. Как преобразовать WriteableBitmap в объект BitmapImage в Silverlight5?
- 14. Как сериализовать класс содержит BitmapImage?
- 15. Невозможно обрезать/обрезать изображения
- 16. Указатель на BitmapImage в классе
- 17. Convert Canvas to BitMapImage & crop для пути
- 18. BitmapImage: Как дождаться инициализации BitmapImage перед возвратом изображения? (C# .NET)
- 19. Как динамически менять объект?
- 20. Создать объект динамически java
- 21. Динамически загружать объект C#
- 22. Динамически генерируемые объект
- 23. динамически создающий объект [java]
- 24. Динамически создавать объект JavaScript
- 25. Динамически создавать объект JSON
- 26. Динамически построить объект ACS
- 27. Перемещение через объект динамически
- 28. Выбрать объект динамически
- 29. Как создать объект динамически
- 30. доктрина создать объект динамически
Спасибо, но мне нужно использовать код для Silverlight приложения, и я не получаю способ добавить ссылку на CroppedBitmap. Поэтому ваш ответ не помогает мне. – rohits
Извините, я не знал, что этот класс не существует в SL ... –
Я просто посмотрел документацию SL. По-видимому, у него даже нет класса DrawingContext, поэтому я сомневаюсь, что вы можете легко сделать это в SL ... Возможно, вам понадобятся сторонние компоненты –