J'ai un objet BitmapImage qui contient une image de 600 X 400 dimensions. Maintenant, à partir de mon code C# derrière, j'ai besoin de créer deux nouveaux objets BitmapImage, disons objA et objB de 600 x 200 chacun de sorte que objA contienne l'image recadrée moitié supérieure et objB contient l'image recadrée moitié inférieure de l'image originale.Rognage dynamique d'un objet BitmapImage
4
A
Répondre
5
BitmapSource topHalf = new CroppedBitmap(sourceBitmap, topRect);
BitmapSource bottomHalf = new CroppedBitmap(sourceBitmap, bottomRect);
Le résultat est pas un BitmapImage
, mais il est encore un ImageSource
valide, qui devrait être OK si vous voulez juste pour l'afficher.
EDIT: En fait, il y a une façon de le faire, mais il est assez laid ... Vous devez créer un contrôle Image
avec l'image originale, et utiliser la méthode WriteableBitmap.Render
pour le rendre.
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);
Avertissement: ce code est complètement non testé;)
Questions connexes
- 1. Rognage Mako sortie
- 2. Rognage d'une chaîne d'aide
- 3. WPF BitmapImage Sérialisation/désérialisation
- 4. BitmapImage to Bitmap
- 5. StringTemplate objet dynamique .net
- 6. RenderTargetBitmap à BitmapImage dans WPF
- 7. WPF BitmapImage Problème de mémoire
- 8. Couche deux BitmapImage dans WPF
- 9. Flash 4 BitmapImage et événements
- 10. Enregistrer BitmapImage dans le fichier
- 11. Convertir ImageSource en BitmapImage - WPF
- 12. octets [] à BitmapImage dans silverlight
- 13. Building objet dans Rebol dynamique
- 14. Rognage des chaînes avec actionscript 3
- 15. WPF BitmapImage Largeur/Hauteur sont toujours 1?
- 16. BitmapImage restrictions de taille dans Silverlight
- 17. octets [] à l'échelle de gris BitmapImage
- 18. C# objet dynamique d'exécution de type Vérification
- 19. Création d'un objet ItemRender personnalisé dynamique (constructeur)
- 20. Comment allouer un objet typé dynamique
- 21. convertir JSON en un objet/dictionnaire/dynamique
- 22. plugin assign jquery pour objet créé dynamique
- 23. Besoin de solution pour le rognage de texte Problème
- 24. Création d'une fonction de rognage de chaîne intelligente en C#
- 25. Le rognage de chaînes provoque une fuite de mémoire?
- 26. Rognage d'une image pour un usage temporaire en PHP
- 27. Silverlight 4.0 - Rognage d'image avec des événements de souris
- 28. J'ai besoin d'aide rognage d'une image en PHP (GD)
- 29. Comment afficher une image cryptée à l'aide de BitmapImage
- 30. Qu'est-ce que FromFile et ToFile équivalent pour BitmapImage?
Merci, mais je dois utiliser le code pour une application Silverlight et je ne reçois pas un moyen d'ajouter une référence à CroppedBitmap. Votre réponse ne m'aide donc pas. – rohits
Désolé, je ne savais pas que cette classe n'existe pas en SL ... –
Je viens de jeter un oeil à la documentation SL. Apparemment, il n'a même pas la classe DrawingContext, donc je doute que vous puissiez facilement le faire en SL ... Vous aurez probablement besoin de composants tiers –