// 人脸检测与属性分析 https://cloud.baidu.com/doc/FACE/s/yk37c1u4t public static string faceDetect(string token, Bitmap bitmap, string imagepath = "") { //string token = "[调用鉴权接口获取的token]"; string host = "https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=" + token; Encoding encoding = Encoding.Default; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.KeepAlive = true; string base64Str = ImageProcess.ImageToBase64(bitmap); if (base64Str == null) { return(""); } //Console.WriteLine(base64Str); string str = "{\"image\":\"" + base64Str + "\",\"image_type\":\"BASE64\",\"face_field\":\"age,beauty,expression,face_shape,gender,glasses,landmark,landmark150,race,quality,eye_status,emotion,face_type,mask,spoofing\",\"max_face_num\":1,\"face_type\":\"LIVE\",\"liveness_control\":\"NONE\"}"; byte[] buffer = encoding.GetBytes(str); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default); string result = reader.ReadToEnd(); //Console.WriteLine("人脸检测与属性分析:"); //Console.WriteLine(result); return(result); }
/// <summary> /// 异步下载图片 /// </summary> /// <param name="Url"></param> /// <param name="imageType"></param> /// <param name="ID"></param> /// <param name="Cookie"></param> /// <returns></returns> public static async Task <(bool, string)> DownLoadImage(string Url, ImageType imageType, string ID, string Cookie = "", Action <int> callback = null) { if (!Url.IsProperUrl()) { return(false, ""); } bool result = false; string cookies = Cookie; int statuscode = 404; byte[] ImageBytes = null; (ImageBytes, cookies, statuscode) = await Task.Run(() => { (ImageBytes, cookies, statuscode) = DownLoadFile(Url.Replace("\"", "'"), SetCookie: cookies); return(ImageBytes, cookies, statuscode); }); if (ImageBytes == null) { Logger.LogN($"图片下载失败:{Url}"); callback?.Invoke(statuscode); result = false; } else { result = true; ImageProcess.SaveImage(ID, ImageBytes, imageType, Url); } return(result, cookies); }
public async void TestAI(object sender, RoutedEventArgs e) { Button button = sender as Button; StackPanel stackPanel = button.Parent as StackPanel; CheckBox checkBox = stackPanel.Children.OfType <CheckBox>().First(); Image image = stackPanel.Children.OfType <Image>().First(); if (checkBox.Content.ToString() == "百度人脸识别") { string base64 = "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"; System.Drawing.Bitmap bitmap = ImageProcess.Base64ToBitmap(base64); Dictionary <string, string> result; Int32Rect int32Rect; (result, int32Rect) = await TestBaiduAI(bitmap); if (result != null && int32Rect != Int32Rect.Empty) { image.Source = new BitmapImage(new Uri(@"/Resources/Picture/status_success.png", UriKind.Relative)); new PopupWindow(this, "成功!").Show(); } else { image.Source = new BitmapImage(new Uri(@"/Resources/Picture/status_fail.png", UriKind.Relative)); new PopupWindow(this, "失败!").Show(); } } }
public async void TestAI(object sender, RoutedEventArgs e) { Button button = sender as Button; StackPanel stackPanel = button.Parent as StackPanel; CheckBox checkBox = stackPanel.Children.OfType <CheckBox>().First(); ImageAwesome imageAwesome = stackPanel.Children.OfType <ImageAwesome>().First(); imageAwesome.Icon = FontAwesomeIcon.Refresh; imageAwesome.Spin = true; imageAwesome.Foreground = (SolidColorBrush)Application.Current.Resources["ForegroundSearch"]; if (checkBox.Content.ToString() == Jvedio.Language.Resources.BaiduFaceRecognition) { string base64 = Resource_String.BaseImage64; System.Drawing.Bitmap bitmap = ImageProcess.Base64ToBitmap(base64); Dictionary <string, string> result; Int32Rect int32Rect; (result, int32Rect) = await TestBaiduAI(bitmap); if (result != null && int32Rect != Int32Rect.Empty) { imageAwesome.Icon = FontAwesomeIcon.CheckCircle; imageAwesome.Spin = false; imageAwesome.Foreground = new SolidColorBrush(Color.FromRgb(32, 183, 89)); string clientId = Properties.Settings.Default.Baidu_API_KEY.Replace(" ", ""); string clientSecret = Properties.Settings.Default.Baidu_SECRET_KEY.Replace(" ", ""); SaveKeyValue(clientId, clientSecret, "BaiduAI.key"); } else { imageAwesome.Icon = FontAwesomeIcon.TimesCircle; imageAwesome.Spin = false; imageAwesome.Foreground = new SolidColorBrush(Colors.Red); } } }
/// <summary> /// 异步下载图片 /// </summary> /// <param name="Url"></param> /// <param name="imageType"></param> /// <param name="ID"></param> /// <param name="Cookie"></param> /// <returns></returns> public static async Task <(bool, string)> DownLoadImage(string Url, ImageType imageType, string ID, string Cookie = "", Action <int> callback = null) { if (!Url.IsProperUrl()) { return(false, ""); } HttpResult httpResult = await DownLoadFile(Url.Replace("\"", "'"), SetCookie : Cookie); bool result = false; string cookie = ""; if (httpResult == null) { Logger.LogN($" {Jvedio.Language.Resources.DownLoadImageFail}:{Url}"); callback?.Invoke((int)HttpStatusCode.Forbidden); result = false; } else { if (httpResult.Headers.SetCookie != null) { cookie = httpResult.Headers.SetCookie.Split(';')[0]; } else { cookie = Cookie; } result = true; ImageProcess.SaveImage(ID, httpResult.FileByte, imageType, Url); } return(result, cookie); }
private void SetBackgroundImage(object sender, RoutedEventArgs e) { System.Windows.Forms.OpenFileDialog OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog(); OpenFileDialog1.Title = Jvedio.Language.Resources.Choose; OpenFileDialog1.FileName = "background.jpg"; OpenFileDialog1.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory; OpenFileDialog1.Filter = "jpg|*.jpg"; OpenFileDialog1.FilterIndex = 1; OpenFileDialog1.RestoreDirectory = true; if (OpenFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string path = OpenFileDialog1.FileName; if (File.Exists(path)) { //设置背景 GlobalVariable.BackgroundImage = null; GC.Collect(); GlobalVariable.BackgroundImage = ImageProcess.BitmapImageFromFile(path); Properties.Settings.Default.BackgroundImage = path; Main main = ((Main)GetWindowByName("Main")); if (main != null) main.SetSkin(); WindowDetails windowDetails = ((WindowDetails)GetWindowByName("WindowDetails")); if (windowDetails != null) windowDetails.SetSkin(); } } }
public static BitmapImage GetActorImage(string name) { //加载图片 BitmapImage image = ImageProcess.GetBitmapImage(name, "Actresses"); if (image == null) { image = DefaultActorImage; } return(image); }
private async void DownLoad(object o) { Semaphore.WaitOne(); Actress actress = o as Actress; if (Cancel | actress.id == "") { Semaphore.Release(); return; } try { this.State = DownLoadState.DownLoading; //下载头像 if (!string.IsNullOrEmpty(actress.imageurl)) { string url = actress.imageurl; byte[] imageBytes = null; imageBytes = await Task.Run(() => { return(Net.DownLoadFile(url).filebytes); }); if (imageBytes != null) { ImageProcess.SaveImage(actress.name, imageBytes, ImageType.ActorImage, url); actress.smallimage = ImageProcess.GetBitmapImage(actress.name, "Actresses"); } } //下载信息 bool success = false; success = await Task.Run(() => { Task.Delay(300).Wait(); return(Net.DownActress(actress.id, actress.name, callback: (message) => { MessageCallBack?.Invoke(this, new MessageCallBackEventArgs(message)); })); }); if (success) { actress = DataBase.SelectInfoFromActress(actress); } ProgressBarUpdate.value += 1; InfoUpdate?.Invoke(this, new ActressUpdateEventArgs() { Actress = actress, progressBarUpdate = ProgressBarUpdate, state = State }); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { Semaphore.Release(); } }
private void UpdateMain(string oldID, string newID) { Main main = App.Current.Windows[0] as Main; Movie movie = SelectMovie(newID); addTag(ref movie); movie.smallimage = ImageProcess.GetBitmapImage(movie.id, "SmallPic"); movie.bigimage = ImageProcess.GetBitmapImage(movie.id, "BigPic"); for (int i = 0; i < main.vieModel.CurrentMovieList.Count; i++) { try { if (main.vieModel.CurrentMovieList[i]?.id.ToUpper() == oldID.ToUpper()) { main.vieModel.CurrentMovieList[i] = null; main.vieModel.CurrentMovieList[i] = movie; break; } } catch { } } for (int i = 0; i < main.vieModel.MovieList.Count; i++) { try { if (main.vieModel.MovieList[i]?.id.ToUpper() == oldID.ToUpper()) { main.vieModel.MovieList[i] = null; main.vieModel.MovieList[i] = movie; break; } } catch { } } for (int i = 0; i < main.vieModel.FilterMovieList.Count; i++) { try { if (main.vieModel.FilterMovieList[i]?.id.ToUpper() == oldID.ToUpper()) { main.vieModel.FilterMovieList[i] = null; main.vieModel.FilterMovieList[i] = movie; break; } } catch { } } }
/// <summary> /// 异步下载图片 /// </summary> /// <param name="Url"></param> /// <param name="imageType"></param> /// <param name="ID"></param> /// <param name="Cookie"></param> /// <returns></returns> public static async Task <(bool, string)> DownLoadImage(string Url, ImageType imageType, string ID, string Cookie = "", Action <int> callback = null) { //如果文件存在则不下载 string filepath = BasePicPath; if (imageType == ImageType.SmallImage) { filepath = Path.Combine(filepath, "SmallPic", ID + ".jpg"); } else if (imageType == ImageType.BigImage) { filepath = Path.Combine(filepath, "BigPic", ID + ".jpg"); } if (File.Exists(filepath)) { return(true, ""); } if (!Url.IsProperUrl()) { return(false, ""); } HttpResult httpResult = await DownLoadFile(Url.Replace("\"", "'"), setCookie : Cookie); bool result = false; string cookie = ""; if (httpResult == null) { Logger.LogN($" {Jvedio.Language.Resources.DownLoadImageFail}:{Url}"); callback?.Invoke((int)HttpStatusCode.Forbidden); result = false; } else { if (httpResult.Headers.SetCookie != null) { cookie = httpResult.Headers.SetCookie.Split(';')[0]; } else { cookie = Cookie; } result = true; ImageProcess.SaveImage(ID, httpResult.FileByte, imageType, Url); } return(result, cookie); }
public static void SetImage(ref Movie movie) { //加载图片 BitmapImage smallimage = ImageProcess.GetBitmapImage(movie.id, "SmallPic"); BitmapImage bigimage = ImageProcess.GetBitmapImage(movie.id, "BigPic"); if (smallimage == null) { smallimage = DefaultSmallImage; } if (bigimage == null) { bigimage = DefaultBigImage; } movie.smallimage = smallimage; movie.bigimage = bigimage; }
public static void LoadBgImage() { //设置背景 GlobalVariable.BackgroundImage = null; if (Properties.Settings.Default.EnableBgImage) { string path = Properties.Settings.Default.BackgroundImage; if (!File.Exists(path)) { path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "background.jpg"); } GC.Collect(); if (File.Exists(path)) { GlobalVariable.BackgroundImage = ImageProcess.BitmapImageFromFile(path); } } }
private void SetBackgroundImage(object sender, RoutedEventArgs e) { System.Windows.Forms.OpenFileDialog OpenFileDialog1 = new System.Windows.Forms.OpenFileDialog(); OpenFileDialog1.Title = Jvedio.Language.Resources.Choose; OpenFileDialog1.FileName = "background.jpg"; OpenFileDialog1.Filter = "(jpg;jpeg;png)|*.jpg;*.jpeg;*.png"; OpenFileDialog1.FilterIndex = 1; if (OpenFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string path = OpenFileDialog1.FileName; if (File.Exists(path)) { //设置背景 GlobalVariable.BackgroundImage = null; GC.Collect(); GlobalVariable.BackgroundImage = ImageProcess.BitmapImageFromFile(path); Properties.Settings.Default.BackgroundImage = path; (GetWindowByName("Main") as Main)?.SetSkin(); (GetWindowByName("WindowDetails") as WindowDetails)?.SetSkin(); } } }
private async void DownLoad(object o) { //下载信息 Movie movie = o as Movie; if (movie.id.ToUpper().StartsWith("FC2")) { SemaphoreFC2.WaitOne(); } else { Semaphore.WaitOne();//阻塞 } if (Cancel || string.IsNullOrEmpty(movie.id)) { if (movie.id.ToUpper().StartsWith("FC2")) { SemaphoreFC2.Release(); } else { Semaphore.Release(); } return; } //下载信息 State = DownLoadState.DownLoading; if (movie.IsToDownLoadInfo() || enforce) { //满足一定条件才下载信息 HttpResult httpResult = await Net.DownLoadFromNet(movie); if (httpResult != null) { if (httpResult.Success) { InfoUpdate?.Invoke(this, new InfoUpdateEventArgs() { Movie = movie, progress = downLoadProgress.value, Success = httpResult.Success }); //委托到主界面显示 } else { string error = httpResult.Error != "" ? httpResult.Error : httpResult.StatusCode.ToStatusMessage(); MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {movie.id} {Jvedio.Language.Resources.DownloadMessageFailFor}:{error}")); } } } DetailMovie dm = DataBase.SelectDetailMovieById(movie.id); if (dm == null) { if (movie.id.ToUpper().StartsWith("FC2")) { SemaphoreFC2.Release(); } else { Semaphore.Release(); } return; } if (!File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") || enforce) { await Net.DownLoadImage(dm.bigimageurl, ImageType.BigImage, dm.id);//下载大图 } //fc2 没有缩略图 if (dm.id.IndexOf("FC2") >= 0) { //复制海报图作为缩略图 if (File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") && !File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg")) { try { File.Copy(BasePicPath + $"BigPic\\{dm.id}.jpg", BasePicPath + $"SmallPic\\{dm.id}.jpg"); } catch (Exception ex) { Logger.LogF(ex); } } } else { if (!File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg") || enforce) { await Net.DownLoadImage(dm.smallimageurl, ImageType.SmallImage, dm.id); //下载小图 } } dm.smallimage = ImageProcess.GetBitmapImage(dm.id, "SmallPic"); InfoUpdate?.Invoke(this, new InfoUpdateEventArgs() { Movie = dm, progress = downLoadProgress.value, state = State }); //委托到主界面显示 dm.bigimage = ImageProcess.GetBitmapImage(dm.id, "BigPic"); lock (downLoadProgress.lockobject) downLoadProgress.value += 1; //完全下载完一个影片 InfoUpdate?.Invoke(this, new InfoUpdateEventArgs() { Movie = dm, progress = downLoadProgress.value, state = State, Success = true }); //委托到主界面显示 Task.Delay(DelayInvterval).Wait(); //每个线程之间暂停 //取消阻塞 if (movie.id.ToUpper().IndexOf("FC2") >= 0) { SemaphoreFC2.Release(); } else { Semaphore.Release(); } }
private async void DownLoad(object o) { //下载信息=>下载图片 Movie movie = o as Movie; if (movie.id.ToUpper().StartsWith("FC2")) { SemaphoreFC2.WaitOne(); } else { Semaphore.WaitOne(); //阻塞 } if (Cancel || string.IsNullOrEmpty(movie.id)) { if (movie.id.ToUpper().StartsWith("FC2")) { SemaphoreFC2.Release(); } else { Semaphore.Release(); } return; } bool success; string resultMessage; //下载信息 State = DownLoadState.DownLoading; if (Net.IsToDownLoadInfo(movie) || enforce) { //满足一定条件才下载信息 (success, resultMessage) = await Task.Run(() => { return(Net.DownLoadFromNet(movie)); }); InfoUpdate?.Invoke(this, new InfoUpdateEventArgs() { Movie = movie, progress = downLoadProgress.value, Success = success }); //委托到主界面显示 if (!success) { MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {movie.id} {Jvedio.Language.Resources.DownloadMessageFailFor}:{(resultMessage.ToStatusMessage())}")); } } DetailMovie dm = new DetailMovie(); dm = DataBase.SelectDetailMovieById(movie.id); if (!File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") || enforce) { string message2 = ""; (bool success2, string cookie2) = await Net.DownLoadImage(dm.bigimageurl, ImageType.BigImage, dm.id, callback : (sc) => { message2 = sc.ToString(); });//下载大图 //if (!success2) MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {dm.id} 海报图下载失败,原因:{message2.ToStatusMessage()}")); } //fc2 没有缩略图 if (dm.id.IndexOf("FC2") >= 0) { //复制海报图作为缩略图 if (File.Exists(BasePicPath + $"BigPic\\{dm.id}.jpg") && !File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg")) { File.Copy(BasePicPath + $"BigPic\\{dm.id}.jpg", BasePicPath + $"SmallPic\\{dm.id}.jpg"); } } else { if (!File.Exists(BasePicPath + $"SmallPic\\{dm.id}.jpg") || enforce) { string message = ""; (bool success1, string cookie) = await Net.DownLoadImage(dm.smallimageurl, ImageType.SmallImage, dm.id, callback : (sc) => { message = sc.ToString(); }); //下载小图 //if (!success1) MessageCallBack?.Invoke(this, new MessageCallBackEventArgs($" {dm.id} 缩略图下载失败,原因:{message.ToStatusMessage()}")); } } dm.smallimage = ImageProcess.GetBitmapImage(dm.id, "SmallPic"); InfoUpdate?.Invoke(this, new InfoUpdateEventArgs() { Movie = dm, progress = downLoadProgress.value, state = State }); //委托到主界面显示 dm.bigimage = ImageProcess.GetBitmapImage(dm.id, "BigPic"); lock (downLoadProgress.lockobject) downLoadProgress.value += 1; //完全下载完一个影片 InfoUpdate?.Invoke(this, new InfoUpdateEventArgs() { Movie = dm, progress = downLoadProgress.value, state = State, Success = true }); //委托到主界面显示 Task.Delay(DelayInvterval).Wait(); //每个线程之间暂停 //取消阻塞 if (movie.id.ToUpper().IndexOf("FC2") >= 0) { SemaphoreFC2.Release(); } else { Semaphore.Release(); } }