Example #1
0
        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;
        }
Example #2
0
        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));
        }
Example #4
0
        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));
        }
Example #7
0
        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}個");
        }