J'ai une image chargée en XAML à l'aide d'un convertisseur. Plutôt que de charger à nouveau cette image, je veux prendre cette image et trouver la couleur dominante pour pouvoir l'utiliser pour d'autres graphismes sur la page. Jusqu'à présent, j'ai ceci:UWP BitmapImage to Stream
var himage = (BitmapImage)image_home.Source;
using (var stream = await himage.OpenReadAsync()) //**can't open himage this way**
{
//Create a decoder for the image
var decoder = await BitmapDecoder.CreateAsync(stream);
//Create a transform to get a 1x1 image
var myTransform = new BitmapTransform { ScaledHeight = 1, ScaledWidth = 1 };
//Get the pixel provider
var pixels = await decoder.GetPixelDataAsync(
BitmapPixelFormat.Rgba8,
BitmapAlphaMode.Ignore,
myTransform,
ExifOrientationMode.IgnoreExifOrientation,
ColorManagementMode.DoNotColorManage);
//Get the bytes of the 1x1 scaled image
var bytes = pixels.DetachPixelData();
//read the color
var myDominantColor = Color.FromArgb(255, bytes[0], bytes[1], bytes[2]);
}
Il est évident que je ne peux pas ouvrir le Himage BitmapImage en utilisant OpenReadAsync, que dois-je faire là-bas pour être en mesure d'y parvenir?
Que faites-vous avec le convertisseur que vous mentionnez? Ne pourriez-vous pas extraire la couleur dominante en même temps? –
Désolé, il aurait fallu clarifier c'est un convertisseur de conversion qui convertit d'un numéro d'identification à une URL pour la source d'image –