private string[] GetTypesByQuality(PreviewQuality quality) { // s m x y w // a b c d switch (quality) { case PreviewQuality.Low: return(LowQualitySizes); default: return(HighQualitySizes); } }
public Preview GetPreview( TdApi.Photo photo, PreviewQuality quality) { var types = GetTypesByQuality(quality); var file = photo.Sizes .Where(s => Array.IndexOf(types, s.Type) >= 0) .OrderBy(s => Array.IndexOf(types, s.Type)) .FirstOrDefault()?.Photo; return(new Preview { Bitmap = GetBitmap(file), Quality = PreviewQuality.High }); }
public IObservable <Preview> LoadPreview( TdApi.Photo photo, PreviewQuality quality) { var types = GetTypesByQuality(quality); var file = photo.Sizes .Where(s => Array.IndexOf(types, s.Type) >= 0) .OrderBy(s => Array.IndexOf(types, s.Type)) .FirstOrDefault()?.Photo; return(LoadBitmap(file) .Select(bitmap => new Preview { Bitmap = bitmap, Quality = quality })); }