private static void GameBananaAddImages(GameBananaMod file, WebDownloadablePackage package) { if (file.PreviewMedia?.Images == null) { return; } var gbImages = file.PreviewMedia.Images; if (gbImages.Length <= 0) { return; } var images = new DownloadableImage[gbImages.Length]; var imagesSpan = new SpanList <DownloadableImage>(images); var thumbsSpan = new DownloadableImageThumbnail[GameBananaPreviewImage.MaxThumbnailCount]; foreach (var gbImage in gbImages) { var baseUri = new Uri($"{gbImage.BaseUrl}/", UriKind.Absolute); var image = new DownloadableImage() { Uri = new Uri(baseUri, gbImage.File), Caption = gbImage.Caption }; var thumbs = new SpanList <DownloadableImageThumbnail>(thumbsSpan); if (!string.IsNullOrEmpty(gbImage.FileWidth100)) { thumbs.Add(new DownloadableImageThumbnail(new Uri(baseUri, gbImage.FileWidth100), 100)); } if (!string.IsNullOrEmpty(gbImage.FileWidth220)) { thumbs.Add(new DownloadableImageThumbnail(new Uri(baseUri, gbImage.FileWidth220), 220)); } if (!string.IsNullOrEmpty(gbImage.FileWidth530)) { thumbs.Add(new DownloadableImageThumbnail(new Uri(baseUri, gbImage.FileWidth530), 530)); } if (thumbs.Length > 0) { image.Thumbnails = thumbs.AsSpan.ToArray(); } imagesSpan.Add(image); } package.Images = images; }
/// <summary> /// 解析桥跨序列 /// </summary> /// <param name="splist"></param> public void ReadSpanList(string splist) { if (splist.StartsWith("示例:")) { splist = string.Concat(splist.Skip(3)); } string[] slist = splist.Split('+'); foreach (string s in slist) { try { SpanList.Add(double.Parse(s) * 1000.0); } catch { SpanList.Clear(); throw new ArgumentException("桥跨序列"); } } }