/// <summary> /// Method to get a picture path. /// </summary> public static async Task <Image> CreateAlbumImage(string sourceFilename, EnumPictureType imgType, int albumId) { string destFileName = await GetAbsolutePathAlbumImageAsync(albumId, imgType, Path.GetExtension(sourceFilename)); File.Copy(sourceFilename, destFileName, true); if (imgType == EnumPictureType.Preview) { return(Image.FromFile(destFileName)); } if (imgType == EnumPictureType.Thumbnail) { Image img; using (Image src = Image.FromFile(destFileName)) { using (Image imgResized = src.ResizeRatio(SizeThumnail.Width)) { img = imgResized.Crop(SizeThumnail.Width, SizeThumnail.Height); } } img.Save(destFileName); return(img); } return(null); }
/// <summary> /// Method to get a path to an album. /// </summary> /// <param name="albumId">The primary key of the album.</param> /// <param name="imgType"></param> /// <param name="fileExt"></param> /// <returns>The path to the album directory.</returns> public static string GetRelativePathAlbumImage(int albumId, EnumPictureType imgType, string fileExt) { // Format Album path by Primary Key int root = (int)Math.Floor((double)(albumId / 1024)); string path = Path.Combine(root.ToString().PadLeft(4, '0'), albumId.ToString().PadLeft(4, '0')); if (imgType == EnumPictureType.Background || imgType == EnumPictureType.Preview) { return(Path.Combine(path, "fanart" + fileExt)); } if (imgType == EnumPictureType.Thumbnail) { return(Path.Combine(path, "cover" + fileExt)); } return(""); }
/// <summary> /// /// </summary> /// <param name="type"></param> /// <returns></returns> public static string ToString(this EnumPictureType type) { switch (type) { case EnumPictureType.Original: return("Original"); case EnumPictureType.Thumbnail: return("Thumbnail"); case EnumPictureType.Preview: return("Preview"); case EnumPictureType.Background: return("Background"); } return(null); }
/// <summary> /// Method to get a path to an album. /// </summary> /// <param name="albumId">The primary key of the album.</param> /// <param name="imgType"></param> /// <param name="fileExt"></param> /// <returns>The path to the album directory.</returns> public static async Task <string> GetAbsolutePathAlbumImageAsync(int albumId, EnumPictureType imgType, string fileExt) { return(Path.Combine(await GetAlbumsDirectoryAsync(), GetRelativePathAlbumImage(albumId, imgType, fileExt))); }
/// <summary> /// Method to get a path to an album. /// </summary> /// <param name="albumId">The primary key of the album.</param> /// <param name="imgType"></param> /// <param name="fileExt"></param> /// <returns>The path to the album directory.</returns> public static string GetAlbumImageAbsolutePath(int albumId, EnumPictureType imgType, string fileExt) { return(Path.Combine(GetAlbumsDirectory(), GetRelativePathAlbumImage(albumId, imgType, fileExt))); }