Necesito crear una imagen redonda en una aplicación universal de Windows Phone.
Para crear este tipo de imagen he usado este código:
<Border CornerRadius="30" Height="60" Width="60">
<Border.Background>
<ImageBrush ImageSource="ms-appx:///Assets/round_image.png" />
</Border.Background>
</Border>
pero este código tiene un gran impacto en la memoria, aproximadamente 4Mb para cada imagen. utilizando este código en lugar de solucionar el problema, pero la imagen no es redonda.
<Border CornerRadius="30" Height="60" Width="60">
<Image Source="ms-appx:///Assets/round_image.png" Stretch="Fill" />
</Border>
Necesito mostrar 20 imágenes, la diferencia con estos 2 enfoques es de unos 80 MB.
¿Hay una solución a este problema de memoria?
Respuestas
2 para la respuesta № 1Pruebe lo siguiente:
<Border CornerRadius="30" Height="60" Width="60">
<Border.Background>
<ImageBrush>
<ImageBrush.ImageSource>
<BitmapImage
UriSource="ms-appx:///Assets/round_image.png"
DecodePixelWidth="60"
DecodePixelHeight="60"
DecodePixelType="Logical"/>
</ImageBrush.ImageSource>
</ImageBrush>
</Border.Background>
</Border>
El problema puede ser que tus imágenes son demasiado grandes. Esto decodificará las imágenes al tamaño de visualización real, lo que aumentará el rendimiento de representación si las imágenes originales son demasiado grandes.