private void SaveToImageFile() { if (_screenBitmap != null) { Rect rect = this.rectClip.Rect; double wpfDpi = 96; wpfDpi = _sysDpi / wpfDpi; double rateDpi = wpfDpi;// _screenScale * wpfDpi; var clip = new System.Drawing.Rectangle((int)(rect.X * rateDpi), (int)(rect.Y * rateDpi), (int)(rect.Width * rateDpi), (int)(rect.Height * rateDpi)); string root = SDKClient.SDKClient.Instance.property.CurrentAccount.imgPath; if (!System.IO.Directory.Exists(root)) { System.IO.Directory.CreateDirectory(root); } _clipSavePath = System.IO.Path.Combine(root, $"{Guid.NewGuid().ToString()}.jpg"); BitmapSource source = ImageDeal.SaveUiToImageFile(this.canvasMain, clip, rateDpi, _clipSavePath); if (source == null) { _clipSavePath = null; } else { Clipboard.SetImage(source); } } this.DialogResult = true; }
private void stkpMenu_Click(object sender, RoutedEventArgs e) { List <string> list = new List <string>(); Color c; ButtonBase button = e.Source as ButtonBase; switch (button.Uid) { case "Pen": this.bdThumb.IsHitTestVisible = false; this.inkCanvas.Visibility = Visibility.Visible; break; case "Save": Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog(); sfd.Filter = "JPEG (*.jpg;*.jpeg)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png"; sfd.FileName = string.Format("IM截图{0}.jpg", DateTime.Now.ToString("yyyyMMddHHmmss")); sfd.FilterIndex = 1; sfd.RestoreDirectory = true; if (sfd.ShowDialog() == true) { Rect clip = this.rectClip.Rect; double wpfDpi = 96; wpfDpi = _sysDpi / wpfDpi; double rateDpi = _screenScale * wpfDpi; var sourceRect = new System.Drawing.Rectangle((int)(clip.X * rateDpi), (int)(clip.Y * rateDpi), (int)(clip.Width * rateDpi), (int)(clip.Height * rateDpi)); BitmapSource source = ImageDeal.SaveUiToImageFile(this.canvasMain, sourceRect, rateDpi, sfd.FileName); if (source != null) { Clipboard.SetImage(source); this.DialogResult = false; } } break; case "Backout": if (this.inkCanvas.Strokes.Count > 0) { this.inkCanvas.Strokes.RemoveAt(this.inkCanvas.Strokes.Count - 1); this.rbtnBackout.IsEnabled = this.inkCanvas.Strokes.Count > 0; } break; case "Cancel": this.DialogResult = false; break; case "OK": SaveToImageFile(); break; } }
public ActionResult Edit(int?id, ProductsViewModel model) { var validImageTypes = new string[] { "image/gif", "image/jpeg", "image/pjpeg", "image/png" }; if (model.ImageUpload != null && !validImageTypes.Contains(model.ImageUpload.ContentType)) { ModelState.AddModelError("ImageUpload", "請選擇 GIF, JPG or PNG 圖片檔案格式。"); } if (ModelState.IsValid) { var product = db.Products.Find(id); if (product == null) { return(new HttpNotFoundResult()); } product.Name = model.Name; product.Description = model.Description; product.Category_Id = model.Category_Id; product.Price = model.Price; product.Author = model.Author; product.Publisher = model.Publisher; product.PublishDT = Convert.ToDateTime(model.PublishDT); product.IsPublic = model.IsPublic; if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0) { ImageDeal imageDeal = new ImageDeal(); //上傳圖檔&壓縮圖檔處理 string imageUrl = imageDeal.Upload(model.ImageUpload); product.PhotoUrl = imageUrl; //刪除舊檔案&壓縮檔案 var deletePhotoUrl = Server.MapPath(model.PhotoUrl); imageDeal.Delete(deletePhotoUrl); } db.Entry(product).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Category_Id = new SelectList(db.Categories, "Id", "Name", model.Category_Id); return(View(model)); }
public static string ShowClip() { string path = string.Empty; if (clipWIN == null) { clipWIN = new ClipWindow() { Topmost = true }; clipWIN._screenBitmap = ImageDeal.GetScreenSnapshot(clipWIN._screenScale);; clipWIN.ShowDialog(); path = clipWIN._clipSavePath; clipWIN = null; } else { clipWIN.Activate(); } // Rect rect = clipWIN.rectClip.Rect; // double wpfDpi = 96; // wpfDpi = clipWIN._sysDpi / wpfDpi; // double rateDpi = wpfDpi; // var clip = new System.Drawing.Rectangle((int)(rect.X * rateDpi), (int)(rect.Y * rateDpi), //(int)(rect.Width * rateDpi), (int)(rect.Height * rateDpi)); // string root = SDKClient.SDKClient.Instance.property.CurrentAccount.imgPath; // if (!System.IO.Directory.Exists(root)) // { // System.IO.Directory.CreateDirectory(root); // } // clipWIN._clipSavePath = System.IO.Path.Combine(root, $"{Guid.NewGuid().ToString()}.jpg"); // BitmapSource source = ImageDeal.SaveUiToImageFile(clipWIN.canvasMain, clip, rateDpi, clipWIN._clipSavePath); // if (source == null) // { // clipWIN._clipSavePath = null; // } // else // { // Clipboard.SetImage(source); // } return(path); }
public ActionResult DeleteConfirmed(int id) { Products products = db.Products.Find(id); db.Products.Remove(products); db.SaveChanges(); //刪除舊檔案 //刪除舊檔案&壓縮檔案 var deletePhotoUrl = Server.MapPath(products.PhotoUrl); ImageDeal imageDeal = new ImageDeal(); imageDeal.Delete(deletePhotoUrl); return(RedirectToAction("Index")); }
public ActionResult Create(ProductsViewModel model) { //傳進去ProductsViewModel model, 回傳 var validImageTpes = new string[] { "image/gif", "image/jpeg", "image/pjpeg", "image/png" }; if ( model.ImageUpload != null && !validImageTpes.Contains(model.ImageUpload.ContentType)) { ModelState.AddModelError("ImageUpload", "請選擇 GIF, JPG or PNG 圖片檔案格式。"); } if (ModelState.IsValid) { var product = new Products { Name = model.Name, Description = model.Description, Category_Id = model.Category_Id, Price = model.Price, Author = model.Author, Publisher = model.Publisher, PublishDT = Convert.ToDateTime(model.PublishDT), IsPublic = model.IsPublic }; if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0) { ImageDeal imageDeal = new ImageDeal(); string imageUrl = imageDeal.Upload(model.ImageUpload); product.PhotoUrl = imageUrl; } db.Products.Add(product); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Category_Id = new SelectList(db.Categories, "Id", "Name", model.Category_Id); return(View(model)); }
private void btn_deal_pic_Click(object sender, RoutedEventArgs e) { App.count = 0; CommonOpenFileDialog fbd = new CommonOpenFileDialog(); fbd.InitialDirectory = App.selectPath; fbd.IsFolderPicker = true; if (fbd.ShowDialog() == CommonFileDialogResult.Ok) { App.selectPath = fbd.FileName; } else { return; } try { List <string> fileList = Directory.GetFiles(App.selectPath, "*.argb", cb_alpha_child_dir.IsChecked == true ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly).ToList(); foreach (string file in fileList) { string fileName = Path.GetFileNameWithoutExtension(file); string filefolder = Path.GetDirectoryName(file); string filepath = Path.Combine(filefolder, fileName); Bitmap img1 = Cutjpg(filepath); Bitmap img2 = Cutpng(filepath); ImageDeal.DealImage(img1, img2, $"{filepath}.png"); img1.Dispose(); img2.Dispose(); File.Delete(file); lb_count.Content = $"( {App.count++} / {fileList.Count} )"; } } catch (Exception ex) { System.Windows.MessageBox.Show($"失敗:{ex.Message}"); } lb_count.Content = String.Empty; System.Windows.MessageBox.Show($"完成! 共轉換{App.count}個"); }