Example #1
0
        public GetArtwork()
        {
            Get["/artwork"] = _ =>
            {
                Plugin.MusicBeeApiInterface mbApi            = MbApiInstance.Instance.MusicBeeApiInterface;
                PictureLocations            pictureLocations = PictureLocations.None;
                string[] album = null;
                mbApi.Library_QueryFilesEx($"Artist={Request.Query.artist}\0Album={Request.Query.album}", ref album);
                string pictureUrl = null;
                byte[] image      = null;
                mbApi.Library_GetArtworkEx(album[0], 0, true, ref pictureLocations, ref pictureUrl, ref image);

                if (Request.Query.thumbnail)
                {
                    try
                    {
                        byte[] thumbnail = new ThumbnailCreator().CreateThumbnailBytes(thumbnailSize: 400, imageBytes: image, imageFormat: Format.Jpeg);
                        string color     = GetColor(thumbnail);
                        return(WriteJson(Convert.ToBase64String(thumbnail), false, color));
                    }
                    catch (Exception e)
                    {
                        if (e.Message == "Thumbnail size must be less than image's size")
                        {
                            string color = GetColor(image);
                            return(WriteJson(Convert.ToBase64String(image), false, color));
                        }
                        else
                        {
                            return(false);
                        }
                    }
                }
                else
                {
                    return(Convert.ToBase64String(image));
                }
            };
        }