GithubHelp home page GithubHelp logo

nickemanarin / screentogif Goto Github PK

View Code? Open in Web Editor NEW
22.7K 351.0 2.1K 24.83 MB

🎬 ScreenToGif allows you to record a selected area of your screen, edit and save it as a gif or video.

Home Page: http://www.screentogif.com

License: Microsoft Public License

C# 99.94% CSS 0.06%
gif recorder editor video webcam sketchboard wpf

screentogif's People

Contributors

5idereal avatar andy-kl avatar cvoigt avatar dagdelenvolkan avatar darkooze avatar deepchirp avatar dxball avatar freaksterrao avatar koszeggy avatar laiqun avatar mabakay avatar manbokgo avatar matthew-e-brown avatar mlaily avatar mlocati avatar mr-update avatar nickemanarin avatar nickesm avatar nkh0472 avatar om2804 avatar panther2 avatar pawlos avatar ppavlova avatar regmos avatar spirifoxy avatar stephan-p avatar tobeks avatar tr4ncer avatar uselesstoucan avatar wvxwxvw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

screentogif's Issues

Encode in Background

To save time, couldn't encoding be constantly be done in background with the current settings?
So, if i don't change encoding settings, the process will be finished faster.
This would be similar to a download that already starts before i have chosen a destination and name.

[Bug] On Dispacher Unhandled Exception - Unknow

1. Summary

I can not record one my GIF.

2. Expected behavior

Successfull all GIF's record.

3. Actual behavior

Stop recording on ~1609 frame 4 times for me.

Stop and crash

4. Steps to reproduce

I record GIF use Sublime Text 3 and KeypressOSD AutoHotkey script. I can not end of record.

Full today log on Gist.

5. Environment

Operating system and version:
Windows 32-bit 10.0.14393
ScreenToGif:
2.3.161030
.NET Framework
4.6 Build 394802
Sublime Text:
Build 3126
AutoHotkey:
1.1.24.03
KeypressOSD:
2.0.6

Thanks.

Method not found

When i try start record of part screen, I get an error. Webcam record is ok. Thanks

System.MissingMethodException: Method not found: "Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)".
   в ScreenToGif.Capture.CaptureCursor.CaptureImageCursor(Point& point)
   в ScreenToGif.Windows.Recorder.Cursor_Elapsed(Object sender, EventArgs e)
   в System.Windows.Forms.Timer.OnTick(EventArgs e)
   в System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

mscorlib
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.18063 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ScreenToGif
    Версия сборки: 2.2.0.0
    Версия Win32: 2.2.0.0
    CodeBase: file:///../ScreenToGif%202.2/ScreenToGif%202.2.exe
----------------------------------------
PresentationFramework
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.18060
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.dll
----------------------------------------
WindowsBase
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.18060 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
System
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.34238 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
PresentationCore
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.18060 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
System.Xaml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.18015 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xaml/v4.0_4.0.0.0__b77a5c561934e089/System.Xaml.dll
----------------------------------------
PresentationFramework.Aero
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.Aero/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.Aero.dll
----------------------------------------
System.Core
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.18060 built by: FX45RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Windows.Forms
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.34251 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.34270 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Xml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.34234 built by: FX452RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
PresentationCore.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationCore.resources/v4.0_4.0.0.0_ru_31bf3856ad364e35/PresentationCore.resources.dll
----------------------------------------
PresentationFramework-SystemXml
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemXml/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemXml.dll
----------------------------------------
UIAutomationTypes
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/UIAutomationTypes/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationTypes.dll
----------------------------------------
UIAutomationProvider
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/UIAutomationProvider/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationProvider.dll
----------------------------------------
Accessibility
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
PresentationFramework.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.resources/v4.0_4.0.0.0_ru_31bf3856ad364e35/PresentationFramework.resources.dll
----------------------------------------
System.Windows.Controls.Ribbon
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Controls.Ribbon/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Controls.Ribbon.dll
----------------------------------------
mscorlib.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------
System.Windows.Forms.resources
    Версия сборки: 4.0.0.0
    Версия Win32: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

Blur out areas of screen when editing?

First of all, thanks for your work on this, it's great! Guessing this is an enhancement, but is there a way blur out certain regions of the screen in edit mode? Greenshot[0][1][2] has this ability and would be very useful in ScreenToGif.

Here's an example of what I mean:

greenshotdemo

By the way, when I tried to send feedback through the application it froze when I clicked send and I had kill it manually.

[0]https://github.com/greenshot/greenshot
[1]http://getgreenshot.org/help/#editor-obfuscate
[2]https://github.com/greenshot/greenshot/blob/6f30b68e5737f9d8f23201e0aba7726b62e873a2/Greenshot.Addon.Editor/Drawing/ObfuscateContainer.cs

Odd numbered dimensions crash FFmpeg encoder

Hi Nicke,

I tried to use this tool to encode a gif to a WebM file and the FFmpeg encoder kept pitching errors. All other encoders worked fine. I pulled source and examined it, extracted the shell execution string, then ran it myself outside of the program, executing FFmpeg directly. FFmpeg doesn't like having an odd number for the width dimension. I got into that state because I have 50% dpi scaling on my secondary monitor and it rounded it to an odd number when it captured it. FFmpeg wouldn't even attempt a conversion, it just kicked back a generic failure with something along the lines of "Byte Array not convertible."

I got around this by converting the capture group to a compatible dimension, but it took hours. I'd rather just have the program tack on a line of #000000 bits to the edge just to make everything line up (alternately flat out lie about the dimensions and give it an extra pixel col/row). Also, FFmpeg should really handle that case with more grace :|. Lots of falling down all over the place, and not much on you!

Thanks,
--Erick Lewis

Incorrect save path

When I hit "save as" and choose a path, it fills the path box with a ref path such as ".. \ .. \ .. \ .. \Downloads". After I give the file a name it processes it but at the end it says 0B. I got around this by filling the path box myself with the full path eg: "D:\MyStuff" and then it worked.
Thanks for this project :) it's really cool.

Argument exception when using relative paths

Here I am again, sorry to bother again so soon

Using a relative path in the save path dialog generates an exception only when pressing the Choose the Location button, even though regular saving works just fine.

PresentationFramework.GetShellItemForPath

   at MS.Internal.AppModel.ShellUtil.GetShellItemForPath(String path)
   at Microsoft.Win32.FileDialog.PrepareVistaDialog(IFileDialog dialog)
   at Microsoft.Win32.FileDialog.RunVistaDialog(IntPtr hwndOwner)
   at Microsoft.Win32.FileDialog.RunDialog(IntPtr hwndOwner)
   at Microsoft.Win32.CommonDialog.ShowDialog()
   at ScreenToGif.Windows.Editor.ChooseLocation_Click(Object sender, RoutedEventArgs e)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.Primitives.ButtonBase.OnClick()
   at System.Windows.Controls.Button.OnClick()
   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Now I know this is probably unorthodox, and most likely not a foreseen use, but I'dd politely ask you if possible to fix the bug without removing the relative path support :)

I love using applications with a as portable as possible environment, because some times I am away from my computer running from portable HDD or Thumbdrives, and relative paths are very handy. Also a friendly reminder to eventually bring back true portable mode, including saving preferences in the application folder ;)

Version 2.3 - Can't figure out how to set recording area

With Version 2.3 something changed, and now there is no box to size to set the area for the recording. When I record it just records the entire screen. In the Application settings, I have "Enable Fullscreen mode" UN-checked. I'm running Windows 7 Pro x64.

Am I missing something?

bugs?

  1. when trying to save resource file by clicking Options - Language - here (if you are offline), program says 'Impossible to save the Xaml file' , 'String resource not found'.
    image
  2. program crashes when trying to cancel importing frames from video in editor.

these two files are logs which automatically created when it crashed/failed to save Xaml file.
log_18_8_2016.txt
log_19_8_2016.txt

Using Windows 10 Home K x64 (Version 1607, Build 14393.51) - Korean running on i5-6600K and GTX960 with 16GB RAM.

Add setting for default image-options

I always use the progress-bar feature, so it would be nice if there was a setting that a progress bar should always be added.

Someone else might always want a watermark, etc...

Not sure how the apply- functionality would work, as it needs rendering time to apply.
Something happening in the background?

Playback (Alt+P) skips multiple frames

When playing the recorded animation in-program, the refresh rate of the window is inconsistent with the framerate of the animation and thus a lot of frames (about 4 in 5) are skipped.
This makes it very hard to preview animations when doing frame-sensitive work.

Update: Application restart seems to fix it. Has not reappeared so far. Might be related to the usage of hotkey.

(Otherwise this tool continues to be the one and only useful gif-creation software I've come across so far.)

Overwritten files don't decrease in size

One thing I have noticed in the past and has continued happening for several versions now is that if a file is saved overwriting an existing GIF recorded in a previous session it's file size never really decreases even if the new recording is smaller than the original.

Say I record a capture and save it has gif (henceforth called Capture_A.gif) with a file size of 2.5Mb, then close ScreenToGif . I then proceed to open a new session and make a second recording which is considerably shorter than the previous one.

If I save it as Capture_B.gif it has 1.3Mb, but if I turn on the Overwrite option and save it over Capture_A.gif it will still saved with 2.5Mb file regardless of the actual size.

If I go back to the file browser and erase Capture_A.gif and save it again it will correctly present it's 1.3Mb file size.

Is this intended behavior or some sort of bug?

Progress bar detail gets lost with quality

Heard you were trying to move away from Codeplex to Github so I'll try to post issue here.

Not sure if this is something solvable without increasing file size or save quality, but see the GIF recorded here
My guess is the GIF compression ate away the detail of the progress bar, making it look fragmented or broken. It looked fine in the preview before saving

This release is great so far :)

[Feature request] Save at stop recording and auto save project

1. Request

  1. It would be nice, if you add option save as project after recording. If user record GIF and press stop, video automatic will be save as project.
  2. It would be nice, if you add auto save option. Project will be automatic saved, for example, after 20 actions or 5 minutes of work.

2. Justification

Unfortunately, sometimes ScreenToGIF crash for me, if I edit my GIF. I need record and edit GIF again.

In order not to lose the results of my work, I need often save as project. If ScreenToGIF crash for me, I can open my project again and continue working. It would be nice, if Save as Project will be automatic.

3. Examples on other apps

For example, on Codepen.io site is automatic save after code changes.

Thanks.

Incorrect recording offset and size when Windows font size is above 100%

I have a laptop in a multi-monitor setup. The laptop monitor is configured to 2880x1620. It's placed in a docking station and thus a bit far away as would otherwise be normal if I would have the laptop in my lap, the "size of text, apps and other items" is set to quite high 175%.

The other screen resolutions is 2560x1440 and 1200x1920, both at 100%. Recording on them works fine.
Decreasing the font size on the laptop display to 100% resolves the issue.
Increasing the font size on the other displays reproduces the issue on those displays too.

Update: Using version 2.2

I have attached two screenshots showing this.

screentogif-recordingoffsetissue-1-small
screentogif-recordingoffsetissue-2-small

[Suggestion] Add the ability to make settings portable

Hi,

I discovered ScreenToGif not so long ago and I must say it is awesome!

As the title says, I'm suggesting to add the ability to turn the application fully portable to carry the settings over on any machine (USB key).

I'm not sure how much is implied there but file paths will most certainly need to be made relative.

Thoughts?

[Bug] System.AggregateException

Summary

GIF with several title frames and fade effects not encode for me.

Expected behavior

Expected

Actual behavior

Actual

Error: произошла одна или несколько ошибок.

Translate:

Error: One or more errors

Click on this message to see full log:

► Title - 
    Encode
▬ Message - 
    Произошла одна или несколько ошибок.
○ Type - 
    System.AggregateException
♦ Date/Hour - 
    20.11.2016 7:03:06
▲ Source - 
    mscorlib
▼ TargetSite - 
    Void ThrowIfExceptional(Boolean)
♠ StackTrace - 
   в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   в System.Threading.Tasks.Task.Wait()
   в System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   в System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body)
   в ScreenToGif.ImageUtil.ImageMethods.PaintTransparentAndCut(List`1 listToEncode, Color transparent, Int32 id, CancellationTokenSource tokenSource)
   в ScreenToGif.Windows.Encoder.Encode(List`1 listFrames, Int32 id, Parameters param, CancellationTokenSource tokenSource)

▬▬ Message - 
    Индекс находился вне границ массива.
○○ Type - 
    System.IndexOutOfRangeException
▲▲ Source - 
    ScreenToGif
▼▼ TargetSite - 
    System.Drawing.Color GetPixel(Int32, Int32)
♠♠ StackTrace - 
   в ScreenToGif.ImageUtil.PixelUtilOld.GetPixel(Int32 x, Int32 y)
   в ScreenToGif.ImageUtil.ImageMethods.<>c__DisplayClass0_0.<PaintTransparentAndCut>b__0(Int32 x)
   в System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   в System.Threading.Tasks.Task.InnerInvoke()
   в System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   в System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )

----------------------------------

► Title - 
    Encode
▬ Message - 
    Произошла одна или несколько ошибок.
○ Type - 
    System.AggregateException
♦ Date/Hour - 
    20.11.2016 7:03:40
▲ Source - 
    mscorlib
▼ TargetSite - 
    Void ThrowIfExceptional(Boolean)
♠ StackTrace - 
   в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   в System.Threading.Tasks.Task.Wait()
   в System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   в System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body)
   в ScreenToGif.ImageUtil.ImageMethods.PaintTransparentAndCut(List`1 listToEncode, Color transparent, Int32 id, CancellationTokenSource tokenSource)
   в ScreenToGif.Windows.Encoder.Encode(List`1 listFrames, Int32 id, Parameters param, CancellationTokenSource tokenSource)

▬▬ Message - 
    Индекс находился вне границ массива.
○○ Type - 
    System.IndexOutOfRangeException
▲▲ Source - 
    ScreenToGif
▼▼ TargetSite - 
    System.Drawing.Color GetPixel(Int32, Int32)
♠♠ StackTrace - 
   в ScreenToGif.ImageUtil.PixelUtilOld.GetPixel(Int32 x, Int32 y)
   в ScreenToGif.ImageUtil.ImageMethods.<>c__DisplayClass0_0.<PaintTransparentAndCut>b__0(Int32 x)
   в System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   в System.Threading.Tasks.Task.InnerInvoke()
   в System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   в System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )

----------------------------------

► Title - 
    Encode
▬ Message - 
    Произошла одна или несколько ошибок.
○ Type - 
    System.AggregateException
♦ Date/Hour - 
    20.11.2016 7:04:31
▲ Source - 
    mscorlib
▼ TargetSite - 
    Void ThrowIfExceptional(Boolean)
♠ StackTrace - 
   в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   в System.Threading.Tasks.Task.Wait()
   в System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   в System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body)
   в ScreenToGif.ImageUtil.ImageMethods.PaintTransparentAndCut(List`1 listToEncode, Color transparent, Int32 id, CancellationTokenSource tokenSource)
   в ScreenToGif.Windows.Encoder.Encode(List`1 listFrames, Int32 id, Parameters param, CancellationTokenSource tokenSource)

▬▬ Message - 
    Индекс находился вне границ массива.
○○ Type - 
    System.IndexOutOfRangeException
▲▲ Source - 
    ScreenToGif
▼▼ TargetSite - 
    System.Drawing.Color GetPixel(Int32, Int32)
♠♠ StackTrace - 
   в ScreenToGif.ImageUtil.PixelUtilOld.GetPixel(Int32 x, Int32 y)
   в ScreenToGif.ImageUtil.ImageMethods.<>c__DisplayClass0_0.<PaintTransparentAndCut>b__0(Int32 x)
   в System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   в System.Threading.Tasks.Task.InnerInvoke()
   в System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   в System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )

----------------------------------

► Title - 
    Encode
▬ Message - 
    Произошла одна или несколько ошибок.
○ Type - 
    System.AggregateException
♦ Date/Hour - 
    20.11.2016 7:28:27
▲ Source - 
    mscorlib
▼ TargetSite - 
    Void ThrowIfExceptional(Boolean)
♠ StackTrace - 
   в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   в System.Threading.Tasks.Task.Wait()
   в System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally)
   в System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body)
   в ScreenToGif.ImageUtil.ImageMethods.PaintTransparentAndCut(List`1 listToEncode, Color transparent, Int32 id, CancellationTokenSource tokenSource)
   в ScreenToGif.Windows.Encoder.Encode(List`1 listFrames, Int32 id, Parameters param, CancellationTokenSource tokenSource)

▬▬ Message - 
    Индекс находился вне границ массива.
○○ Type - 
    System.IndexOutOfRangeException
▲▲ Source - 
    ScreenToGif
▼▼ TargetSite - 
    System.Drawing.Color GetPixel(Int32, Int32)
♠♠ StackTrace - 
   в ScreenToGif.ImageUtil.PixelUtilOld.GetPixel(Int32 x, Int32 y)
   в ScreenToGif.ImageUtil.ImageMethods.<>c__DisplayClass0_0.<PaintTransparentAndCut>b__0(Int32 x)
   в System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   в System.Threading.Tasks.Task.InnerInvoke()
   в System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   в System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )

----------------------------------

Steps to reproduce

I create GIF 3 Title frames and 3 fade effects → Save As:

  • if I select Legacy Encoder I get error,
  • if I select ScreenToGIF Encoder I get error,
  • if I select System Encoder, 167(!) MB GIF encode for me. No program is open this file.

In E:\Chocolatey\lib\screentogif\content\Logs directory I saw log_20_11_2016.txt file.

Attached file

I save my project file

Environment

Operating system and version:
Windows 32-bit 10.0.14393
ScreenToGif:
2.3.161030
.NET Framework
4.6 Build 394802

Thanks.

Method not found: 'Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)'

Version: ScreenToGif 2.3
OS: Windows 7 Professional

screen to gif error

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.MissingMethodException: Method not found: 'Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)'.
   at ScreenToGif.Capture.CaptureCursor.CaptureImageCursor(Point& point)
   at ScreenToGif.Windows.Recorder.Cursor_Elapsed(Object sender, EventArgs e)
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
ScreenToGif
    Assembly Version: 2.3.0.0
    Win32 Version: 2.3.0.0
    CodeBase: file:///C:/_portable/ScreenToGif%202.3.exe
----------------------------------------
PresentationFramework
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.dll
----------------------------------------
WindowsBase
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
PresentationCore
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
System.Xaml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xaml/v4.0_4.0.0.0__b77a5c561934e089/System.Xaml.dll
----------------------------------------
PresentationFramework.Aero
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.Aero/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.Aero.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Xml.Linq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
PresentationFramework-SystemXmlLinq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemXmlLinq/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemXmlLinq.dll
----------------------------------------
PresentationFramework-SystemXml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemXml/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemXml.dll
----------------------------------------
UIAutomationTypes
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/UIAutomationTypes/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationTypes.dll
----------------------------------------
System.Runtime.Serialization
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
SMDiagnostics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.17929 built by: FX45RTMREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/SMDiagnostics/v4.0_4.0.0.0__b77a5c561934e089/SMDiagnostics.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Add a requirement on .Net Framework 4.6

A requirement on .Net Framework 4.6 should be documented because the software is not compatible with older .Net frameworks.
Indeed exception are thrown when trying to save a gif or some other actions:

MissingMethodException: '!!0[] System.Array.Empty()'.

 à ScreenToGif.Windows.Editor.ShowPanel(PanelType type, String title, String vector, Action`2 apply)
   à ScreenToGif.Windows.Editor.SaveAs_Executed(Object sender, ExecutedRoutedEventArgs e)
   à System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
   à System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
   à System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
   à System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
   à System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
   à System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
   à System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
   à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   à System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   à System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
   à System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
   à MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
   à System.Windows.Controls.Primitives.ButtonBase.OnClick()
   à System.Windows.Controls.Button.OnClick()
   à System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   à System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   à System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   à System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   à System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   à System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   à System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   à System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   à System.Windows.Input.InputManager.ProcessStagingArea()
   à System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   à System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   à System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   à System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   à MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   à MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

WebCam window should constrain the aspect ratio

When the webcam window opens, it is never the correct aspect ratio. Also, there is no way to make it correct without guessing. It would be great if it could do one or more of the following:

  1. Constrain the dimensions to match the aspect ratio (at least optionally)
  2. Have a dropdown to select from supported and/or common sizes (with the correct aspect ratio)

[Feature Request] Pressing enter on text boxes commits changes

For example pressing Enter on the Save as file name text box will save the file (same as pressing the save button bellow)
Pressing Enter on the Editor > Playback > Delay Between Frames value box will commit it to selected frames, or using the Override Delay or Change Delay dialog pressing enter will 'Apply' the values as the button bellow.

[Feature request] Add more hotkeys support

### Request

Added hotkeys for all operations, when I make on my GIF. I want to ScreenToGif users can do all the operations, never using the mouse. GIF of my macros:

ScreenToGIF Macros

Justification

You greatly simplify record macros in ScreenToGif.

I make AutoHotkey macros for operations, I often do — https://gist.github.com/a7e71ef8c6778f86a047ca105c3025dc. But I've been doing it a long time. I have problem: if window ScreenToGif bit shift, macros not will work. Do not recommended make macros using the mouse, because it requires very accurate hitting.

If the only record macros to hotkeys, macros are always well run, no matter what the size of ScreenToGIF window and wherever ScreenToGif window was not.

Environment

Operating system and version:
Windows 10.0.14393
ScreenToGIF:
2.3 Alpha b

Thanks.

[Bug] Bad GIF compilation

Summary

I get GIF bad quality.

Expected behavior

I make video in ScreenToGIF editor panel use LICEcap program.

LICEcap output

Actual behavior

ScreenToGIF output

Steps to reproduce

I make and edit GIF → Save as → my parameters:

Parameters

But I get bad file in output.

Additional information

But other GIF, when I make use ScreenToGIF, is good:

Additional GIF

Attached Files

Project file
Output file

Environment

Operating system and version:
Windows 10.0.14393
ScreenToGif
Version 2.2.160907

Thanks.

Sound

Can be? added functionality to record sound from Microphone as input to save in as Video like Presentation, or option to add recorded sound to timeline.

[Feature Request] Ability to remove every X frames (file size)

Background: Many GIF files have lots of unnecessary frames that aren't required for demonstrating a process such as clicking start menu, choosing Run, and entering a command. As a result, you have a detailed GIF that's much larger than it needs to be.

Solution; Automatically removing every 2nd, 3rd, or [insert number] frame can help cut down on the overall size of an animation without loosing the content.

To avoid making the process go by too fast, it may also be wise to include options to increase the framerate delay slightly.

Workaround (manual method): open the editor and press the left arrow key and then click delete for the length of the file. Then, select all frames and click "Increase or Decrease" Delay and add 5-10 ms.


I'm happy to mock something up if this sounds like a useful feature.

Snap to Window icon is misleading

Tried using the tool and so far it's very intuitive. However this one feature really confused me at first.

Currently the "Snap to Window" button for the Recorder window uses the typical "Crop" icon. So I assumed this would allow me to drag any area on screen for recording (similar to how Microsoft's OneNote and SnipIt Tool work). Instead the tool snapped to some maximized window and I had trouble figuring out what actually happened.

For the current functionality of "Snap to Window" I'd highly suggest using a more common icon for something like this, i.e. the typical crosshair that's (to my knowledge) rather common in other programs offering some window selection. Here's an example from Process Explorer:

Process Explorer screenshot

I'd edit the icon in myself, but to be honest I couldn't figure out how to edit the resources so far, since I typically only work with Windows Forms.

Capture doesn't match region when display scaling is not at 100%

Whatever this Windows 10 setting is:

image

screws up the capture region compared to the position of the capture window.

I have 125% on one monitor and 100% on the other, if I'm on the 100% it captures as expected, using Screen2Gif on the 125% screen grabs the unscaled top, left, width, height of the intended region instead of the intended one.

[Feature Request] Fade effect video

Request

I want adding fade effect for GIF or any other effect that people who are view cyclic GIF can to see where the beginning and at the end on the GIF.

Example

I want at the end of GIF became darker, darker, and finally became completely black. Example effect on Adobe Premier:

Adobe Premier

Cause

In some videos is very difficult from the first or the second time to see where it starts and where the video ends. This is important if a video sequence of certain actions. Example.

MultiEditUtils

Yes, I understand that ScreenToGif - it's not a huge expensive video editor with lots of features, but I think the effect will be beneficial for many users, not only for me.

Thank you for a great program!

[Feature request] Stretching or compression window size during the screen recording

Thank you that you have the ability to move ScreenToGif window! But I think it would be very nice if users could ScreenToGif resize recordable area of ​​the screen during recording.

When the screen recording is not started, I can change the screen size.

Resize inactive window

But when screen recording is already started, I can not change the screen size.

Resize active window

Thanks.

RTE when undo

Create gif with screen recorder, copy last frame, paste it multiple times, undo multiple times, RTE appears.

[Feature Request] Add Save to Clipboard

Most of the time (99%) when I record something with this great tool, I want to directly paste it somewhere.

It would be cool if there was an option to save the gif directly to the clipboard.

I think internally it should save it to a temporary file in %temp%, and then copy that.

[Feature request] When Shift-Selecting frames keep up preview with last selected frame

In the editor window when shift-selecting frames keep up the main preview with the last selected frame. Currently it always shows the first selected frame, and it would be useful te see a full sized version of the last selected in the frame range, so one could see what was being used for the operation.

This actually works pretty well when shift-selecting backwards say from frame 100->80 with [Shift]-[Left Arrow] but selecting forward, like say, frame 100->120 will no longer update the full size preview.

Also if I shift-select with the arrow keys all works fine, but if I shift select with the mouse from say frame 10->20 and and repeatedly press [Shift]-[Left Arrow] to deselect, it will change selection to 10->9, 10->8, 10->7 instead of 10->19, 10->18, 10->17 etc.

If I do it in reverse order and use the shit+mouse to select the frame range 20->10 it all works as expected, pressing [Shift]-[Right Arrow] will correctly update selection to 20->11, 20->12, 20->13, etc.

Cannot run because of TypeInitializationException

I cannot run screentogif 2.2.0 on Windows 7 with .NET Framework v4.0.30319 installed.
There are two errors in event log:

Application: ScreenToGif 2.2.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitializationException
Stack:
Faulting application name: ScreenToGif 2.2.exe, version: 2.2.0.0, time stamp: 0x57cc4202
Faulting module name: KERNELBASE.dll, version: 6.1.7600.16385, time stamp: 0x4a5bdbdf
Exception code: 0xe0434352
Fault offset: 0x0000b727
Faulting process id: 0x8a0
Faulting application start time: 0x01d22ac8d97e734f
Faulting application path: C:\Users\admin\AppData\Local\Temp\ScreenToGif 2.2.exe
Faulting module path: C:\Windows\syswow64\KERNELBASE.dll
Report Id: 17e96c45-96bc-11e6-b2db-005056a43f38

(Yes, stack in message is empty).

As a library

This could be a very powerful support tool if it could be included in a software project.

The idea as a workflow:

  1. A user of my software is having an issue
  2. They hit the "Report Issue" button
  3. Behind the scenes, screentogif.dll starts recording the application's window.
  4. The user is instructed to reproduce the issue if possible
  5. Once the user has recreated the problem, they indicate that they're done
  6. The application stops the recording
  7. The application acquires the generated gif
  8. Logs are packaged up with the gif, it is all sent back to our support department as a tidy little ticket.

If such a library as screentogif.dll existed, and supported steps 3,4,6, and 7 then that would be stellar.

I'm sure we could pull the source and just do it in-house as a one-off, but everybody benefits when packages make it up to NuGet.

Thanks for considering!

Temp. files of board recording aren't removed by 'Clear Temp. Folder' + etc

I got some files left in C:\Users[Username]\AppData\Local\Temp\ScreenToGif\Recording after cleaning Temp. folder.

capture_2016_08_19_13_10_39_1

Seems like Temporary files created with board recording.. maybe.

Also I got error when using editor, trying to undo 3 frames which deleted by Edit - Frames - Delete. Exception viewer opens up and it says cannot find files in ActionStack folder... I didn't touched anything in Temp. folder before this error happened.

logs.txt

Thanks.

Exception using read only file as watermark

Trying to use a read only image file as a watermark generates an exception stating the

Access to the path 'path/to/image/file.png' is denied

mscorlib.WinIOError

at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at ScreenToGif.ImageUtil.ImageMethods.SourceFrom(String fileSource, Nullable`1 size)
   at ScreenToGif.Util.Converters.UriToBitmap.Convert(Object value, Type targetType, Object parameter, CultureInfo culture)
   at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
   at System.Windows.Data.BindingExpression.ScheduleTransfer(Boolean isASubPropertyChange)
   at MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean dependencySourcesChanged, Boolean initialValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k, ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
   at MS.Internal.Data.ClrBindingWorker.OnSourcePropertyChanged(Object o, String propName)
   at MS.Internal.Data.PropertyPathWorker.OnPropertyChanged(Object sender, PropertyChangedEventArgs e)
   at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   at System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(Object sender, PropertyChangedEventArgs args)
   at System.Configuration.ApplicationSettingsBase.OnPropertyChanged(Object sender, PropertyChangedEventArgs e)
   at System.Configuration.ApplicationSettingsBase.set_Item(String propertyName, Object value)
   at ScreenToGif.Windows.Editor.SelectWatermark_Click(Object sender, RoutedEventArgs e)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.Controls.Primitives.ButtonBase.OnClick()
   at System.Windows.Controls.Button.OnClick()
   at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
   at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
   at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Version 2.3 Can't change Frame Time Length

In version 2.2 we could, in the playback tab, adjust the length of the frame. You could only change one frame at a time though.

But in 2.3, you can't change it anymore - the edit box is missing.
Here's my dilemma - I need the base frame time length to be 300ms instead of 1000ms.

I know you can change the delay, but I want to change the frame time.

I would like to see two settings here:

  1. Set default frame length (so I can just do it globally and not have to edit the time of each frame)
  2. Put back the time editor into the playback tab (and make it work for selected frames)

[Bug] How to disable «Clipboard» pane?

When I edit my GIF, appears Clipboard pane, although I do not want it. Clipboard pane just prevents me.

Clipboard pane

What should I do to Clipboard pane does not always appear, but only when I want it: EditShow Clipboard. I did not find in the settings, how can I disable Clipboard pane.

  • Windows 10.0.14393
  • ScreenToGif 2.2.160907

Thanks.

Exception on saving to GIF or Video.

Trying to save 1720-frame animation got an exception with text "file 0.png" already exists.
Nothing is changed in recorded frameset except that one frame duration is changed to 2500msec and some text added to it.
Log file: ##log_14_9_2016.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.