Próbowałem wyszukiwać, ale nie mogłem znaleźć odpowiedzi na to pytanie: czy istnieją ulepszenia wydajności w korzystaniu z ImageBrush do wypełnienia prostokąta, zamiast tworzenia BitmapImage i ustawiania jego właściwości źródłowej?Wydajność BitmapImage vs. ImageBrush
muszę zdać dużą liczbę obrazów (staramy się naciskać ponad 5000) i teraz tworzę je w ten sposób:
<Image x:Name="img" RenderOptions.BitmapScalingMode="LowQuality"
Source="{Binding Path, Converter={StaticResource StringToImageConverter}, ConverterParameter={StaticResource string}}" >
</ext:IdImage>
oraz w konwerterze:
System.Windows.Media.Imaging.BitmapImage image = new System.Windows.Media.Imaging.BitmapImage();
image.BeginInit();
image.UriSource = new Uri(value as String);
image.DecodePixelWidth = int.Parse((String)parameter);
image.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad;
image.EndInit();
return image;
NB: Muszę użyć konwertera, aby ustawić właściwość DecodePixelWidth.
Za pomocą ImageBrush mogłem zamrozić pędzel w ten sposób, zgodnie z tym, co czytałem, zwiększając wydajność, więc zastanawiałem się, czy powinienem zmienić sposób, w jaki buduję obrazy.
P.S. Obrazy nie są statyczne, ale są tłumaczone.
Niska prędkość podczas renderowania obrazu? Powoli używam BitmapImage ImageBrusch? – daniele3004
Witamy w StackOverflow! Zobacz "[Czy na pytania powinny się znaleźć tagi" w swoich tytułach?] (Http://meta.stackexchange.com/questions/19190/) ", gdzie konsensus brzmi" nie, nie powinien ". –
Dlaczego nie wdrożyć benchmark wydajności sam? tylko mówię' ... –