+----------------------------------------------------------------------+ | | | _____ _ __ __ | | / ____| (_) / _| / _| | | _ _ | | __ _ | |_ | |_ ___ _ __ | | | | | | | | |_ | | | | _| | _| / _ \ | '__| | | | |_| | | |__| | | | | | | | | __/ | | | | | ._,_| \_____| |_| |_| |_| \___| |_| | | |_| | | | +----------------------------------------------------------------------+ | | | μGiffer | | | | Very simple screen-to-gif recorder for Windows | | | +----------------------------------------------------------------------+ -- Download -- https://iobureau.com/ugiffer/uGiffer-0.9.14.zip 207 KB / 2024-09-10 Includes both 32-bit and 64-bit versions, sized 103936 and 126880 bytes respectively. Both files carry an EV signature of IO Bureau. -- How it looks / works -- Aim, press F1, do your thing, press F1 -> see the gif in whatever shows them on your machine, usually the browser. https://iobureau.com/ugiffer/screencap.gif -- User manual -- The program records contents of the screen within its light-green frame and then produces an animated GIF from the capture. It works by grabbing frames as quickly as possible, but not exceeding 100 FPS. Higher FPS doesn't make sense, because the smallest per-frame delay in GIF is 1/100 of a second => 100 FPS max, at best. For each frame it checks if it's different from the last saved frame. If it's, then it saves it as .bmp in a work folder (see below) and notes duration of the previous frame in index.txt file, also in the work folder. Once the recording is stopped, it goes through index.txt and assembles saved frames in a GIF and saves it in the work folder. It then deletes all .bmp files and index.txt, and opens resulting .gif in default viewer (that would usually be the web browser). The program can also make a single static screenshot and place it on the clipboard, just like Alt-PrtSc does, except that it also captures the mouse cursor. -- Controls -- To start recording * F1 - with a 3-second countdown * Ctrl-F1 - without the countdown, immediately To stop recording and make a GIF, hit F1 again. If the program doesn't have the focus, press Ctrl-~ instead. To cancel recording and discard the capture, hit Esc. F2 - runs a benchmark. The program will try and grab frames as quickly as possible without saving them. The purpose of this exercise is to estimate the maximum achievable FPS for the screen and frame size. In my case, it tops at 30 FPS on one monitor and at around 60 FPS on another (even though they are both connected to the same graphics card). F3 - grabs a screenshot and places it on the clipboard. Esc - if not recording, minimizes the window Arrow keys - move window by 1px Ctrl+Arrows - size window by adjusting right and bottom edges Ctrl+Shift+Arrows - size window by adjusting left and top edges Additional keys are documented in the "User Manual". -- Ini file -- A small handful of settings is stored between the runs in uGiffer.ini, which by default is written into %Temp%\uGiffer\ folder. If %Temp% is undefined, it will fallback to using program's launch folder. Location of the .ini can be overridden as follows: uGiffer.exe -c x:\path\to\ini\folder This will cause the program to search for uGiffer.ini there. -- Work folder -- The program defaults to placing its temporary files (of which there's a plenty) into %Temp%\uGiffer\Capture folder. This too can be overridden by setting "work_folder" entry in the ini to some other directory. If you have a RAM or an NVMe drive, you may want to put the work folder there. -- Assorted -- 1. When in recording mode, the window cannot be resized or minimized. It can however be moved and this is properly supported. Except when it's taken outside of the desktop area, in which case there be dragons. 2. GIFs are saved by the main UI thread, so for larger captures the window may enter "Not responding" state. Just give it time. I will redo this part properly as time permits. -- Kudos -- GIFs are assmebled using a slightly reworked version of rversteegen's fork [0] of ginsweater's gif-h library [1]. Fantastic work on both counts. [0] https://github.com/ginsweater/gif-h [1] https://github.com/rversteegen/gif-h -------------------------------- Alexander Pankratov / swapped.ch