private async void ProcessClipboard() { var profile = CreateFromLocal(out var localClipboard); if (profile.GetProfileType() != ProfileType.ClipboardType.Image) { return; } if (!string.IsNullOrEmpty(localClipboard.Html)) // 无html,通常是纯复制图片,剪切板中只有bitmap { var match = Regex.Match(localClipboard.Html, @"<!--StartFragment--><img src=""(http[s]?://.*)""/><!--EndFragment-->"); if (match.Success) // 是从浏览器复制的图片 { Log.Write("http image url: " + match.Result("$1")); var localPath = await DownloadImage(match.Result("$1")); if (localPath is null || !SupportsImage(localPath)) { return; } profile = new ImageProfile(localPath); } } await AdjustClipboard(profile, localClipboard); }
public static Profile CreateFromLocal(out LocalClipboard localClipboard) { localClipboard = GetLocalClipboard(); if (localClipboard.Files != null) { var filename = localClipboard.Files[0]; if (System.IO.File.Exists(filename)) { if (FileIsImage(filename)) { return(new ImageProfile(filename)); } return(new FileProfile(filename)); } } if (localClipboard.Image != null) { return(ImageProfile.CreateFromImage(localClipboard.Image)); } if (localClipboard.Text != null) { return(new TextProfile(localClipboard.Text)); } return(new UnkonwnProfile()); }