Convertir ImageSource à BitmapImage - WPF
Je suis en utilisant une bibliothèque de classe qui génère un grand ImageSource, > 3000x3750 pixels. Je voudrais le convertir cette ImageSource à BitmapImage afin que je puisse profiter de DecodePixelWidth ou DecodePixelHeight au lieu de redimensionner à chaque fois que cette image est générée.
J'ai besoin d'afficher cette image pour le premier utilisateur, et la plupart des utilisateurs ont une résolution d'écran de 1024x768, je suis de la liaison de cette ImageSource à un contrôle de l'Image, mais il peut être remarqué combien les "lourds" il est.
Comment puis-je faire cela? Ou quelle est la meilleure solution pour ce cas?
merci!
OriginalL'auteur | 2009-05-28
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est un vieux post, mais essayez de le faire:
Qui fonctionne bien.
Il ne fonctionne pas pour moi.
Si le sort échoue ici, il le fait en silence. donc, si
myImageSource
ne peut pas être utilisé pourBitmapImage
puismyBitmapImage
seranull
, je serais plutôt d'utilisermyBitmapImage = (BitmapImage)myImageSource;
comme il le ferait au moins me donner une exception si l'enfer se déchaîne.OriginalL'auteur Alexis Mathieu
La
BitmapImage
type hériteBitmapSource
et, finalement,ImageSource
(les deux sont des classes abstraites). Vous devez vérifier que le type réel de l'objet est, par exemple, l'enregistrementobject.GetType().Name
. Si vous avez de la chance, il peut effectivement être de retour unBitmapSource
objet et vous aurez simplement besoin de le jeter à ce type avant de pouvoir les utiliser comme tel.Avez-vous l'utilisation exacte de l'appel que j'ai précisé dans mon post? Il devrait vraiment revenir le type de l'objet, pas le type de base (ou le type de la variable).
oui, je l'ai fait, la documentation indique également le type de retour est ImageSource... merci
C'est assez étrange en effet... la seule raison pour laquelle je peux penser est que le type réel (qui implémente ImageSource) est privé et n'est donc pas exposée. Juste pour être sûr: avez-vous essayé d'incantation à l'un des types dérivés de ImageSource. (Voir MSDN pour une liste.) Sinon, peut-être que vous pourriez nous dire ce que la bibliothèque que vous utilisez afin que nous puissions essayer pour nous-mêmes.
OriginalL'auteur Noldorin