From b9387701cf1c8df963f35ea6cd38981d06a5d84c Mon Sep 17 00:00:00 2001 From: Jaex Date: Sat, 20 Jan 2018 00:36:05 +0300 Subject: [PATCH] fixed #2660: Added "Add image effects" button to image editor menu --- .../Properties/Resources.Designer.cs | 10 ++++++++ .../Properties/Resources.resx | 3 +++ .../Resources/image-saturation.png | Bin 0 -> 1474 bytes .../Shapes/ShapeManager.cs | 24 ++++++++++++++++++ .../Shapes/ShapeManagerMenu.cs | 7 +++++ .../ShareX.ScreenCaptureLib.csproj | 5 ++++ 6 files changed, 49 insertions(+) create mode 100644 ShareX.ScreenCaptureLib/Resources/image-saturation.png diff --git a/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs b/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs index b2d31d0bb..bb4fbcc5c 100644 --- a/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs +++ b/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs @@ -523,6 +523,16 @@ internal static System.Drawing.Bitmap image_resize_actual { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap image_saturation { + get { + object obj = ResourceManager.GetObject("image_saturation", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/ShareX.ScreenCaptureLib/Properties/Resources.resx b/ShareX.ScreenCaptureLib/Properties/Resources.resx index c87fc680f..732a80661 100644 --- a/ShareX.ScreenCaptureLib/Properties/Resources.resx +++ b/ShareX.ScreenCaptureLib/Properties/Resources.resx @@ -729,4 +729,7 @@ Distance: {6:0.00} px / Angle: {7:0.00}° Interpolation mode + + ..\Resources\image-saturation.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/ShareX.ScreenCaptureLib/Resources/image-saturation.png b/ShareX.ScreenCaptureLib/Resources/image-saturation.png new file mode 100644 index 0000000000000000000000000000000000000000..e37aa47bd862114a0cdb1595d09a4074eeded6e1 GIT binary patch literal 1474 zcmaJ>dr%a096t+%;S?}36=m2~a~ub5ckg{G2knE4GwwRzW;~L}_3j6^!9LjC>kc9< zZ7@?xk<4o*dJNV~2osZoDKR8sWl=gB(||LjW2J`56d@SS*d7A%N8`@y{$8KY=llHa zE|2@EMTu#N8jWU=GoLO}$CTKcut5E0jNWC`VY!m$Q;LOhCCo@bLj;5^0CI9n1t9+;o+#D!7f~x`?P#7q}Rq-+&vBOikxH^w*BQP`tQ7Y~5 zJ*Rvw4@3zPfJ{0x%a58-$c*VQgVAEKWI}orLlIPuVEQb~f*bTWibB&5tXh)-<#-Y8 zn6{;^>~K&~L>xiF;jk`j&_RpX+t86h+sMtk)|-Q_-0rx*Mk`xH;a~)B5>dN z|J9ehH6lQYfGmV0zgoreRdY-|*iZ~O9Ru!Sq)MPx(ZN*7VCul-!fC-D;sCEWX*;Y! zbpbYj>oL@5Cat7}B1sI(Lv1E2N!bY0fm%p2WiifhoxH3tydTVP+524Lfn1!D0HX+! zR}iXZn!ytk6hRIOB19D%pp7ga5W;e-PO4WiKY_%)2m%gC;Gn6L;p`mip^$2tpfHC% z&uTE}jRft$FoGbhl*wR2X{(7ekp_607?>0C6p^yg2BXbvHWCJkrZJ2}tprJul*55p z^q9#EBdQxntUu=T%gmPAgt6&t_p6K9`vZ72-I97c-oa0>8qK^BCrx-GLw);ucBc}L ze$!)EKX`r3U||3GgH>KJd5JF1ZGD>X{PZ=sd;O8l{L2|o%NIA(Iyx3_-@LTy%fByv zW?ylN?7HkpX{uZ}cn3Omz5M5zGZ_hgv>)q@KiQ9t-u`jCJG$7}c+vWJb-$-|c=%{& z4OY6|Sy;DPxtcWrF) zO2iMu;dAMwZO`vGH*QF4C|vjU1bv}%@OV>WFjL(UI8V!BX^b_ZtA7AuVtd|eHU$B8E2}?Shwf+nzFH+-p*T4U*gaWvvh3b(Yl=E zGozl?0Z&P3T*tPR69dDC-M4{$xz(LyPYoK=7UFN7gpV|DIP_${5WnE}TjABEm!h3z zz2Zdlig)KUv+HuWaiF=@X;o uw$fj={&Vw2Lj#rD*z|tiw!00vamzH_Eh(G2<3HaN`>Q(h+;ls+dHa6_Fdb_E literal 0 HcmV?d00001 diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index b32f17f0d..405b76273 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License #endregion License Information (GPL v3) using ShareX.HelpersLib; +using ShareX.ImageEffectsLib; using System; using System.Collections.Generic; using System.Drawing; @@ -1697,6 +1698,29 @@ private void RotateImage(RotateFlipType type) UpdateCanvas(img); } + private void AddImageEffects() + { + Form.Pause(); + + using (ImageEffectsForm imageEffectsForm = new ImageEffectsForm(Form.Canvas, new List() { new ImageEffectPreset() }, 0)) + { + imageEffectsForm.ShowDialog(Form); + + if (imageEffectsForm.Presets.IsValidIndex(imageEffectsForm.SelectedPresetIndex)) + { + ImageEffectPreset preset = imageEffectsForm.Presets[imageEffectsForm.SelectedPresetIndex]; + Image img = preset.ApplyEffects(Form.Canvas); + + if (img != null) + { + UpdateCanvas(img); + } + } + } + + Form.Resume(); + } + private void OnCurrentShapeChanged(BaseShape shape) { if (CurrentShapeChanged != null) diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs index 5e84272ad..94ec089a8 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManagerMenu.cs @@ -711,6 +711,13 @@ internal void CreateToolbar() tsmiFlipVertical.Click += (sender, e) => RotateImage(RotateFlipType.RotateNoneFlipY); tsddbImage.DropDownItems.Add(tsmiFlipVertical); + tsddbImage.DropDownItems.Add(new ToolStripSeparator()); + + ToolStripMenuItem tsmiAddImageEffects = new ToolStripMenuItem("Add image effects..."); + tsmiAddImageEffects.Image = Resources.image_saturation; + tsmiAddImageEffects.Click += (sender, e) => AddImageEffects(); + tsddbImage.DropDownItems.Add(tsmiAddImageEffects); + #endregion } diff --git a/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj b/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj index 5a2b5cb00..0b2ec4450 100644 --- a/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj +++ b/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj @@ -213,12 +213,17 @@ {327750E1-9FB7-4CC3-8AEA-9BC42180CAD3} ShareX.HelpersLib + + {d13441b6-96e1-4d1b-8a95-58a7d6cb1e24} + ShareX.ImageEffectsLib + {1a190e53-1419-4cc2-b0e5-3bc7ea861c8b} ShareX.MediaLib +