Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="host"></param>
        public BatchProcessForm(AddinHost host)
        {
            Host = host;
            InitializeComponent();

            AddinUtils.Translate(addin, this, toolTip, new object[] { cmsFileList, dlgOpen });
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void AddinEffectSubItemClick(object sender, EventArgs e)
        {
            string an  = (sender as RibbonButton).Value;
            string ans = (sender as RibbonButton).SelectedValue;

            if (addins.CurrentApp != null && addins.Effects.ContainsKey(an))
            {
                addins.CurrentFilter = addins.Effects[an];
                if (addins.CurrentFilter != null && addins.CurrentApp.ImageData is Image)
                {
                    var jsonFile = Path.Combine(Path.GetDirectoryName(addins.CurrentFilter.Location), $"latest_{addins.CurrentFilter.Name}.json");
                    addins.CurrentFilter.Params    = addins.CurrentFilter.Params.LoadJSON(jsonFile);
                    addins.CurrentFilter.ImageData = addins.CurrentApp.ImageData;
                    object data = null;
                    addins.CurrentFilter.Command(AddinCommand.SubItems, out data, ans);
                    if (addins.CurrentFilter.Success)
                    {
                        if (addins.CurrentFilter.ImageData is Image)
                        {
                            addins.CurrentApp.ImageData = addins.CurrentFilter.ImageData;
                        }
                        addins.CurrentFilter.SaveJSON(jsonFile, addins.CurrentFilter.Params);
                    }

                    int bits = AddinUtils.GetColorDeep(addins.CurrentApp.ImageData.PixelFormat);
                    tssLabelImageSize.Text = $"{addins.CurrentApp.ImageData.Width} x {addins.CurrentApp.ImageData.Height} x {bits}";
                }
                addins.CurrentFilter = null;
            }
        }
Example #3
0
        private void SharpenForm_Load(object sender, EventArgs e)
        {
            thumb            = AddinUtils.CreateThumb(addin.ImageData, imgPreview.Size);
            imgPreview.Image = thumb;

            if (sharpenMode == SharpenMode.Normal)
            {
                btnModeNormal.PerformClick();
            }
            else if (sharpenMode == SharpenMode.Gaussian)
            {
                btnModeGaussian.PerformClick();
            }
            else if (sharpenMode == SharpenMode.GDI)
            {
                btnModeGdi.PerformClick();
            }

            edGaussianSigma.Value     = Convert.ToDecimal(gaussianSigma);
            edGaussianSize.Value      = Convert.ToDecimal(gaussianSize);
            edGaussianThreshold.Value = Convert.ToDecimal(gaussianThreshold);

            edGdiRatio.Value  = Convert.ToDecimal(gdiRatio);
            edGdiAmount.Value = Convert.ToDecimal(gdiAmount);
        }
        private void SendErrorReport()
        {
            try
            {
                // TODO: Add error handling for invalid arguments

                /*RegistryKey regKey;
                 * RegistryKey tempKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.CurrentUser, "");
                 * string subkey = "Software\\CadFaster\\SolidWorksAddIn\\Settings";
                 * regKey = tempKey.OpenSubKey(subkey);
                 * Object pathName = regKey.GetValue("PathName");
                 * string path = (string)pathName;*/
                String   path      = AddinUtils.GetApplicationPath();
                string[] filenames = new string[2];
                filenames[0] = path + "\\error.log";
                filenames[1] = path + "\\dump.dmp";
                EmailController.SendMail(filenames, "CadFaster Translator for SolidWorks has been crashed", "*****@*****.**");



                //smtpClient.Send(mailMsg);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                this.Dispose();
            }
        }
Example #5
0
        public override Image Apply(Image image)
        {
            GetParams(fm);

            if (!(image is Image))
            {
                return(image);
            }

            Rectangle region = new Rectangle(0, 0, ImgSrc.Width, ImgSrc.Height);

            if (Params.ContainsKey("CropRegion"))
            {
                region = (Rectangle)Params["CropRegion"].Value;
            }

            if (Params.ContainsKey("CropSide"))
            {
                var side = (SideType)Params["CropSide"].Value;
                region = Rectangle.Round(AddinUtils.AdjustRegion(region, ImgSrc, side));
            }

            if (region.Width > 0 && region.Height > 0)
            {
                Accord.Imaging.Filters.Crop filter = new Accord.Imaging.Filters.Crop(region);
                Bitmap dst = filter.Apply(AddinUtils.CloneImage(ImgSrc) as Bitmap);
                AddinUtils.CloneExif(ImgSrc, dst);
                return(dst);
            }
            else
            {
                return(ImgSrc);
            }
        }
Example #6
0
        /// <summary>
        /// ////
        /// </summary>
        /// <param name="filter"></param>
        public CropForm(IAddin filter)
        {
            this.addin = filter;
            InitializeComponent();
            toolTip.ToolTipTitle = addin.DisplayName;
            AddinUtils.Translate(addin, this, toolTip);

            aspectList.Clear();
            aspectList.Add("1 x 1", new Size(1, 1));
            aspectList.Add("2 x 1", new Size(2, 1));
            aspectList.Add("3 x 1", new Size(3, 1));
            aspectList.Add("3 x 2", new Size(3, 2));
            aspectList.Add("4 x 3", new Size(4, 3));
            aspectList.Add("16 x 9", new Size(16, 9));
            aspectList.Add("16 x 10", new Size(16, 10));
            aspectList.Add("1 x 2", new Size(1, 2));
            aspectList.Add("1 x 3", new Size(1, 3));
            aspectList.Add("2 x 3", new Size(2, 3));
            aspectList.Add("3 x 4", new Size(3, 4));
            aspectList.Add("9 x 16", new Size(9, 16));
            aspectList.Add("10 x 16", new Size(10, 16));

            thumb            = AddinUtils.CreateThumb(addin.ImageData, imgPreview.Size);
            imgPreview.Image = thumb;
        }
Example #7
0
        private void HueFilterForm_Load(object sender, EventArgs e)
        {
            thumb = AddinUtils.CreateThumb(addin.ImageData, imgPreview.Size);

            edHue.Step       = 1;
            edHue.Value      = 180;
            imgPreview.Image = addin.Apply(thumb);
        }
Example #8
0
        public InvertForm(IAddin filter)
        {
            this.addin = filter;
            InitializeComponent();

            toolTip.ToolTipTitle = addin.DisplayName;
            AddinUtils.Translate(addin, this, toolTip);
        }
Example #9
0
        private void HslFilterForm_Load(object sender, EventArgs e)
        {
            thumb            = AddinUtils.CreateThumb(addin.ImageData, imgPreview.Size);
            imgPreview.Image = thumb;

            cbGrayMode.DataSource = Enum.GetValues(typeof(GrayscaleMode));
            edSat.Color           = edHue.ToRgb(hslSat, hslLum);
            //edLum.Color = edHue.ToRgb( hslSat, hslLum );
        }
Example #10
0
        //private List<ParamList> effectParams = new List<ParamList>();

        internal void LoadPicture(string picFile)
        {
            if (File.Exists(picFile))
            {
                picObject          = AddinUtils.LoadImage(picFile);
                option.ImageCache  = picObject as Bitmap;
                option.PictureFile = picFile;
                Preview();
            }
        }
Example #11
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void _DragDrop(object sender, DragEventArgs e)
 {
     string[] flist = (string[])e.Data.GetData(DataFormats.FileDrop, true);
     if (flist.Length > 0 && File.Exists(flist[0]))
     {
         picObject         = AddinUtils.LoadImage(flist[0]);
         option.ImageCache = picObject as Bitmap;
         Preview();
     }
 }
 public static void FirstChanceHandler(object source, FirstChanceExceptionEventArgs e)
 {
     //Debug.WriteLine(e.Exception.GetType().Name);
     if (e.Exception.GetType().Name != "UserAbortException")
     {
         string path           = AddinUtils.GetApplicationPath();
         string outputFileName = path + "\\dump.dmp"; //"c:\\projs\\dump.dmp";
         Utility.MiniDump.TryDump(outputFileName, Utility.MiniDumpType.Normal);
     }
 }
Example #13
0
 private void imgPreview_SelectionRegionChanged(object sender, EventArgs e)
 {
     if (!mMoveRegion || !mSelection)
     {
         selection       = imgPreview.SelectionRegion;
         selectionCorner = new CornerRegion(selection);
     }
     selectionSrc = AddinUtils.RemapRegion(imgPreview.SelectionRegion, thumb, addin.ImageData);
     toolTip.SetToolTip(imgPreview, $"X:{selectionSrc.X}, Y:{selectionSrc.Y}, W:{selectionSrc.Width}, H:{selectionSrc.Height}]");
 }
Example #14
0
        public ResizeForm(IAddin filter)
        {
            this.addin = filter;
            InitializeComponent();

            cbResizeMethod.Items.Clear();
            cbResizeMethod.Items.Add(AddinUtils.T("Bicubic"));
            cbResizeMethod.Items.Add(AddinUtils.T("Bilinear"));
            cbResizeMethod.Items.Add(AddinUtils.T("Nearest"));
        }
Example #15
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        internal ParamItem GetAngle(string name)
        {
            ParamItem pi = new ParamItem();

            pi.Name        = name;
            pi.DisplayName = AddinUtils._(addin, name);
            pi.Type        = typeof(double);
            pi.Value       = (double)numAngle.Value;
            return(pi);
        }
Example #16
0
        /// <summary>
        /// ////
        /// </summary>
        /// <param name="filter"></param>
        public RotateForm(IAddin filter)
        {
            this.addin = filter;
            InitializeComponent();
            toolTip.ToolTipTitle = addin.DisplayName;
            AddinUtils.Translate(addin, this, toolTip);

            //thumb = CreateThumb( addin.ImageData );
            thumb = AddinUtils.CreateThumb(addin.ImageData, imgPreview.Size);
        }
Example #17
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        internal ParamItem GetMode(string name)
        {
            ParamItem pi = new ParamItem();

            pi.Name        = name;
            pi.DisplayName = AddinUtils._(addin, name);
            pi.Type        = typeof(RotateFlipType);
            pi.Value       = flip;
            return(pi);
        }
Example #18
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        internal ParamItem GetKeepSize(string name)
        {
            ParamItem pi = new ParamItem();

            pi.Name        = name;
            pi.DisplayName = AddinUtils._(addin, name);
            pi.Type        = typeof(bool);
            pi.Value       = chkKeepSize.Checked;
            return(pi);
        }
Example #19
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BatchProcessForm_Load(object sender, EventArgs e)
        {
            AddinUtils.Translate(addin, this, toolTip, new object[] { cmsFileList, dlgOpen });

            //
            //this.MinimizeBox = false;
            //this.MaximizeBox = false;
            //this.ControlBox = false;
            //this.WindowState = FormWindowState.Maximized;
            //this.FormBorderStyle = FormBorderStyle.None;
        }
Example #20
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="img"></param>
        /// <returns></returns>
        private Image CreateThumb(Image img)
        {
            double thumbSize = 160f;
            //double aspect = (float)img.Width / (float)img.Height;
            double factor = Math.Max(img.Width, img.Height) / thumbSize;
            int    w      = (int)Math.Round(img.Width / factor);
            int    h      = (int)Math.Round(img.Height / factor);

            ResizeBicubic filter = new ResizeBicubic(w, h);

            return(AddinUtils.ProcessImage(filter, img));
        }
Example #21
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="image"></param>
        /// <param name="mode"></param>
        /// <returns></returns>
        internal Image Gray(Image image, GrayscaleMode mode = GrayscaleMode.BT709, ColorMatrix cm = null, string cmfile = null)
        {
            #region Fill ColorMatrix List
            if (GrayscaleMatrix.Count == 0)
            {
                InitColorMatrix();
            }
            #endregion

            if (!GrayscaleMatrix.ContainsKey(mode))
            {
                return(image);
            }

            ImageAttributes a = new ImageAttributes();
            ColorMatrix     c = GrayscaleMatrix[mode];
            if (mode == GrayscaleMode.TestMatrix)
            {
                if (cm is ColorMatrix)
                {
                    c = cm;
                }
                else if (!string.IsNullOrEmpty(cmfile))
                {
                    c = LoadColorMatrix(cmfile);
                }
            }
            a.SetColorMatrix(c, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

            Bitmap src = AddinUtils.CloneImage(image) as Bitmap;
            if (src.PixelFormat != PixelFormat.Format32bppArgb)
            {
                src = Accord.Imaging.Image.Clone(src, PixelFormat.Format32bppArgb);
            }
            Bitmap dst = new Bitmap(src.Width, src.Height, src.PixelFormat);

            using (var g = Graphics.FromImage(dst))
            {
                g.SmoothingMode     = SmoothingMode.HighQuality;
                g.PixelOffsetMode   = PixelOffsetMode.Half;
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;

                g.DrawImage(src,
                            new Rectangle(0, 0, src.Width, src.Height),
                            0, 0, src.Width, src.Height,
                            GraphicsUnit.Pixel,
                            a);
            }

            AddinUtils.CloneExif(src, dst);
            return(dst);
        }
Example #22
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lvFiles_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (imgPreview.Image != null)
            {
                imgPreview.Image.Dispose();
            }

            //imgPreview.Image = new Bitmap( e.Item.SubItems[1].Text );
            //lvAddins.Image = imgPreview.Image;
            _image           = AddinUtils.LoadImage(e.Item.SubItems[1].Text);
            imgPreview.Image = _image;
            lvAddins.Image   = _image;
        }
Example #23
0
        private void CropForm_Load(object sender, EventArgs e)
        {
            cbAspect.Items.Clear();
            cbAspect.Items.AddRange(aspectList.Keys.ToArray());
            cbAspect.SelectedIndex = 0;

            btnModeTrans.Enabled = AddinUtils.AlphaFormat.Contains(addin.ImageData.PixelFormat);

            if (cropSide.HasFlag(SideType.Left))
            {
                chkSideL.Checked = true;
            }
            else
            {
                chkSideL.Checked = false;
            }
            if (cropSide.HasFlag(SideType.Right))
            {
                chkSideR.Checked = true;
            }
            else
            {
                chkSideR.Checked = false;
            }
            if (cropSide.HasFlag(SideType.Top))
            {
                chkSideT.Checked = true;
            }
            else
            {
                chkSideT.Checked = false;
            }
            if (cropSide.HasFlag(SideType.Bottom))
            {
                chkSideB.Checked = true;
            }
            else
            {
                chkSideB.Checked = false;
            }

            if (selection.Width > 0 && selection.Height > 0)
            {
                btnModeSelection.PerformClick();
                imgPreview.SelectionRegion = AddinUtils.RemapRegion(selectionSrc, addin.ImageData, thumb);
            }
            else
            {
                btnModeAspect.PerformClick();
            }
        }
Example #24
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public override Image Apply(Image image)
        {
            GetParams(fm);

            if (!(image is Image))
            {
                return(image);
            }

            Bitmap dst = AddinUtils.CloneImage(image) as Bitmap;

            BlurMode blurMode          = (BlurMode)Params["BlurMode"].Value;
            double   gaussianSigma     = (double)Params["GaussianSigma"].Value;
            int      gaussianSize      = (int)Params["GaussianSize"].Value;
            int      gaussianThreshold = (int)Params["GaussianThreshold"].Value;
            int      boxSize           = (int)Params["BoxSize"].Value;
            float    gdiRatio          = (float)Params["GdiRatio"].Value;

            Accord.Imaging.Filters.IFilter filter = null;
            switch (blurMode)
            {
            case BlurMode.Normal:
                filter = new Accord.Imaging.Filters.Blur();
                if (dst is Image)
                {
                    dst = (filter as Accord.Imaging.Filters.Blur).Apply(dst);
                }
                break;

            case BlurMode.Gaussian:
                filter = new Accord.Imaging.Filters.GaussianBlur();
                (filter as Accord.Imaging.Filters.GaussianBlur).Sigma     = gaussianSigma;
                (filter as Accord.Imaging.Filters.GaussianBlur).Size      = gaussianSize;
                (filter as Accord.Imaging.Filters.GaussianBlur).Threshold = gaussianThreshold;
                dst = filter.Apply(dst);
                break;

            case BlurMode.Box:
                filter = new Accord.Imaging.Filters.FastBoxBlur((byte)boxSize, (byte)boxSize);
                dst    = AddinUtils.ProcessImage(filter, dst, false);
                break;

            case BlurMode.GDI:
                var effect = new BlurEffect(gdiRatio, true);
                dst.ApplyEffect(effect, new Rectangle(0, 0, dst.Width, dst.Height));
                break;
            }
            AddinUtils.CloneExif(image, dst);
            return(dst);
        }
Example #25
0
        public GrayscaleForm(IAddin filter)
        {
            this.addin = filter;
            InitializeComponent();

            toolTip.ToolTipTitle = addin.DisplayName;
            AddinUtils.Translate(addin, this, toolTip);

            thumb            = AddinUtils.CreateThumb(addin.ImageData, imgPreview.Size);
            imgPreview.Image = thumb;

            cbGrayMode.Tag        = false;
            cbGrayMode.DataSource = Enum.GetValues(typeof(GrayscaleMode));
            cbGrayMode.Tag        = true;
        }
Example #26
0
        public HueFilterForm(IAddin filter)
        {
            InitializeComponent();

            this.addin           = filter;
            this.Text            = addin.DisplayName;
            this.FormBorderStyle = FormBorderStyle.FixedToolWindow;
            this.MaximizeBox     = false;
            this.MinimizeBox     = false;
            this.ShowIcon        = false;
            this.ShowInTaskbar   = false;
            this.StartPosition   = FormStartPosition.CenterParent;
            toolTip.ToolTipTitle = addin.DisplayName;
            AddinUtils.Translate(addin, this, toolTip);
        }
Example #27
0
        /// <summary>
        ///
        /// </summary>
        private void InitParams()
        {
            Dictionary <string, object> kv = new Dictionary <string, object>();

            kv.Add("InvertMode", InvertMode.Normal);

            Params.Clear();
            foreach (var item in kv)
            {
                Params.Add(item.Key, new ParamItem());
                Params[item.Key].Name        = item.Key;
                Params[item.Key].DisplayName = AddinUtils._(this, item.Key);
                Params[item.Key].Type        = item.Value.GetType();
                Params[item.Key].Value       = item.Value;
            }
        }
Example #28
0
 private void btnEffectAdd_Click(object sender, EventArgs e)
 {
     lvFilters.BeginUpdate();
     foreach (IAddin filter in AddinUtils.ShowAddinsDialog())
     {
         ilLarge.Images.Add(filter.LargeIcon);
         ilSmall.Images.Add(filter.SmallIcon);
         effects.Add(new ListViewItem(filter.DisplayName));
         effects.Last().Selected   = false;
         effects.Last().Tag        = filter;
         effects.Last().ImageIndex = ilLarge.Images.Count;
         effects.Last().Checked    = true;
     }
     lvFilters.VirtualListSize = effects.Count;
     lvFilters.EndUpdate();
     this.ValueChanged?.Invoke(this, e);
 }
Example #29
0
        /// <summary>
        ///
        /// </summary>
        private void InitParams()
        {
            Dictionary <string, object> kv = new Dictionary <string, object>();

            kv.Add("GrayscaleMode", GrayscaleMode.BT709);
            kv.Add("ColorMatrix", null);
            kv.Add("ColorMatrixFile", "");

            Params.Clear();
            foreach (var item in kv)
            {
                Params.Add(item.Key, new ParamItem());
                Params[item.Key].Name        = item.Key;
                Params[item.Key].DisplayName = AddinUtils._(this, item.Key);
                Params[item.Key].Type        = item.Value.GetType();
                Params[item.Key].Value       = item.Value;
            }
        }
Example #30
0
        private void InitParams()
        {
            Dictionary <string, object> kv = new Dictionary <string, object>();

            kv.Add("Mode", RotateFlipType.RotateNoneFlipNone);
            kv.Add("Angle", 0f);
            kv.Add("KeepSize", false);

            Params.Clear();
            foreach (var item in kv)
            {
                Params.Add(item.Key, new ParamItem());
                Params[item.Key].Name        = item.Key;
                Params[item.Key].DisplayName = AddinUtils._(this, item.Key);
                Params[item.Key].Type        = item.Value.GetType();
                Params[item.Key].Value       = item.Value;
            }
        }