public FolderView(IEnumerable<FolderItem> children, HubicCredential credential, Hubic hubic) { _children = children; _credential = credential; _hubic = hubic; InitializeComponent(); Loaded += FolderView_Loaded; }
public static string GetImagePath(string fileRelPath, string basePath, string appDataThumbnailPath, Hubic hubic) { var task = GetImagePathAsync(fileRelPath, basePath, appDataThumbnailPath, hubic); task.Wait(); return task.Result; }
public MainWindow() { InitializeComponent(); DataContext = this; if (string.IsNullOrEmpty(Settings.Default.ClientId) || string.IsNullOrEmpty(Settings.Default.ClientSecret)) { var sw = new SettingsWindow(); sw.ShowDialog(); } _hubic = new Hubic(Settings.Default.ClientId, Settings.Default.RedirectUri, Settings.Default.ClientSecret); }
public static async Task<string> GetImagePathAsync(string fileRelPath, string basePath, string appDataThumbnailPath, Hubic hubic) { var fileName = fileRelPath.Substring(fileRelPath.LastIndexOf('/') + 1); var folder = Path.Combine(basePath, appDataThumbnailPath); var file = new FileInfo(folder + "/" + fileName); if (file.Exists) { return appDataThumbnailPath + "/" + fileName; } var bytes = await hubic.GetImageFromCloud(fileRelPath); using (var image = ByteArrayToImage(bytes.Value)) /* Creates Image from specified data stream */ { double width = image.Width / (double)image.Height * 128.0; using (var thumb = image.GetThumbnailImage( (int)width, /* width*/ 128, /* height*/ () => false, IntPtr.Zero)) { var jpgInfo = ImageCodecInfo.GetImageEncoders().First(codecInfo => codecInfo.MimeType == "image/png"); /* Returns array of image encoder objects built into GDI+ */ using (var encParams = new EncoderParameters(1)) { if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } string outputPath = Path.Combine(basePath, appDataThumbnailPath, fileName); long quality = 100; encParams.Param[0] = new EncoderParameter(Encoder.Quality, quality); thumb.Save(outputPath, jpgInfo, encParams); } } } return appDataThumbnailPath + "/" + fileName; }