GithubHelp home page GithubHelp logo

clowd / clowd Goto Github PK

View Code? Open in Web Editor NEW
69.0 69.0 7.0 29.35 MB

Simple but powerful screenshot and screen recording tool for Windows.

License: MIT License

Batchfile 0.01% PowerShell 0.24% C# 42.18% C++ 57.45% C 0.08% HLSL 0.03%
c-sharp direct3d directx drawing image-editor obs prntscr recorder screen-recorder screenshot windows

clowd's Introduction

Discord Build

73130051

Clowd

Clowd is a minimalist screen capture / screen recording tool. It sits out of your way in your system tray, and is activated when you press the PrntScr key.

The latest "stable" release can always be downloaded from here. If you are looking for the "beta", you should update via the app settings.

download btn
windows x64 - only tested on Windows 10/11

I will respond to bug reports or questions in GitHub issues. Also feel free to bug me (@caesay) in the Clowd Discord server:

discordimg2


Region Capture / PrntScr Replacement

  • Uses Direct3D so is super fast and responsive
  • Scroll to zoom in on any part of your screen, pixel perfect selections (or just looking at stuff on your screen closely)
  • Fully keyboard accessibly
  • Snaps selection to window borders
  • Click on any window to quickly bring it to the foreground
  • Select any color to open a color picker
2022-07-03.14-50-22.mp4

Video Recorder

  • Record MKV, MP4, or GIF's easily
  • Capture Speaker and Microphone audio
  • Optionally show animation where mouse was clicked
  • Draw / annotate on screen when recording video or screen sharing

image of video capture ui


Image Editor

  • Minimalistic / Easy-To-Learn UI for quick edits
  • Save and return to recent seessions
  • Copy to Clipboard or Upload to the web in one click

picture of image editor

Upload Anything

  • Can upload any file or screenshot from PC with one click
  • URL is copied to clipboard
  • Supports a vareity of file sharing websites

picture of upload


Color Picker

  • Select any color on screen using the PrntScr Screen Capture. Press 'H' when your cursor is over the desired color.
  • Can also open the color picker from the tray icon.

picture of color picker


Draw On Screen

  • Can draw anywhere on the screen while recording a video or sharing screen during a video conference
2022-07-03.15-31-38.mp4

Building Clowd

The Clowd.Native project must be compiled before Clowd. If using Visual Studio, this should be done automatically when pressing F6. If using Rider, you may need to edit the run configuration to build Native before starting the main project.

If having any troubles compiling with the IDE, you can replicate a CI build by running the following commands:

git clone https://github.com/clowd/Clowd.git
build.cmd -noDelta

clowd's People

Contributors

caesay avatar rstarkov avatar timwi 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

Watchers

 avatar  avatar  avatar  avatar

clowd's Issues

The content of a "Text" field is not saved if the user chooses the upload option

The content of a "Text" field is not saved if the user chooses the upload option

After creating a "Text" field:

  1. If you directly choose the "Copy" or "Save" option, the text block contains the personalized text.
  2. If you directly choose the "upload" ( it to Imgur ), the text block contains the default text
2022-09-08.23-44-09.mp4

A workaround is to click anywhere on the canvas before clicking upload.

Thx

Obscure tool does not respect image rotation

The Obscure tool applies the effect to where the image would be if the Angle was 0deg.

If we want the pixelated rectangle to appear exactly as drawn, we'll need to store angle information along with each obscured area. You could rotate, obscure, rotate obscure, etc.

Add Self-Hosted Hasty Paste to Pastebin upload solution

Hello,
Is it possible to integrate the self-hosted solution https://github.com/enchant97/hasty-paste as an Pastebin upload solution?

Hasty paste can be used via API keys:
https://enchantedcode.co.uk/hasty-paste/rest-api.html

Ideally, if it would be possible to set the default expiration time ( never / x days / x hours ...) in settings that would be great.

thanks again


Exemple USE API :

curl -X 'POST' \
  'https://paste_url/api/pastes' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "content": "string",
  "expire_dt": "2022-10-25T12:18:34.347Z",
  "long_id": true,
  "content": "test"
}'

Acces to paste via : https://paste_url/<paste_id>

Réponse :

{
  "creation_dt": "Sun, 25 Sep 2022 12:24:40 GMT",
  "expire_dt": "Tue, 25 Oct 2022 12:18:34 GMT",
  "lexer_name": null,
  "paste_id": "uwZXsvCngRgXhTeCnUUpg6DOu0UPF5GgspEIETGB",
  "title": null,
  "version": 1
}

Acces to paste via : https://paste_url/<paste_id>
Acces to exemple paste via : https://paste_url/uwZXsvCngRgXhTeCnUUpg6DOu0UPF5GgspEIETGB

Capture cursor jumps around under high CPU load

When the CPU load is high enough to cause some mouse lag, the normal OS cursor seems to skip some points and still end up in a reasonable spots that matches the mouse input. The capture cursor behaves somewhat erratically in this case, jumping long distances with and without zoom.

Screenshot cursor is uncontrollable over RDP

From Discord:

I often use MS Remote Desktop to control my PC from my MAC. And when I want to use Clowd to take a screenshot, it's messy, I can't select a portion of the screen, the cursor is stuck on the edges, whatever I want it to go...

The reason for this is almost certainly that we use a fake "gamified" cursor. We do this to support fractional positioning when the canvas is zoomed in. (otherwise we'd have to snap the cursor to real pixels, and it would be moving too fast to be precise).

I suspect we can fix this by using the real windows cursor at zoom=1 and only switching to a fake cursor when zoom > 1. This might also fix another issue reported, where with a high dpi cursor and a high refreshrate display, moving the mouse while pressing PrtScr causes the mouse position to jump to an invalid position.

Possible undo/redo improvements

The current architecture allows anything to add an entry to the undo history by calling AddCommandStep(). When called, it serializes all of the graphics in a deterministic way to a byte[] array. This is done in many places eagerly, such as a pointer tool mouse-up after dragging, or after adding a new graphic. If the previous state is identical to the current state, it is discarded.

This works very well most of the time and it's very unlikely that a change will be missed and not added to the history.

There are a couple things that can be improved:

  1. If we are doing an operation like nudge, or changing object line width, it's possible for many entries to get added to the history as AddCommandStep() is triggered every time something is changed
  2. Modifying an image crop causes an history entry for each modification of the crop window which produces some unexpected results as object state may be inconsistent while cropping. A crop operation should only be treated as a single entry.
  3. We could store the entire undo/redo history so it is preserved for re-loaded sessions

Design considerations:

  • Undo manager ideally would have little/no knowledge about any specific graphic object. (ie. avoid specific checks looking for things like GraphicImage.Editing)

I considered serialising the objects to an XElement and comparing the XML element(s) that have changed between the previous and current entry instead of doing a binary comparison. This would help with (1) but we would need some additional consideration for things like Left, Top, etc. An object Move will update all of the coordinate properties, as well as content bounds. This implies that some knowledge of the specific graphics would be required.

jpg instead of png as default format for save.

Make jpg instead of png as default format for save. Png for screenshots by default is only increasing size of the screenshot for no real gains. If people needs lossless screenshots they can switch to png manually.

Hide video controls from video recordings

If recording the whole screen, there's no great place for the clowd recording controls. If we use WGC and SetWindowDisplayAffinity with WDA_EXCLUDEFROMCAPTURE the controls will not be present in the recording.

WGC also captures cursors more correctly. It's downside is that windows renders the yellow border around the display, and there are some types of windows that it will not record.

https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowdisplayaffinity

wishlist

Editor

  • upon every editor change, a preview image is generated on the main thread, causing a slight UI hiccup (or bigger than slight on low performance computers)
  • allow cursor to be toggled on/off in editor
  • Recent page is empty if no captures have been taken yet. Show a helpful message
  • don't save empty documents
  • bring image crop back
  • should be able to nudge graphics with arrow keys
  • transparent drawings are not click through
  • reset angle no longer updates artwork bounds. adding/removing graphics does not update bounds.
  • shift+drag to pan no longer changes the cursor to 4 arrows
  • save as jpeg
  • move up/down through Z order

Screenshot

  • drawing text during the capture is super expensive! if we are dropping frames, try disabling cleartype. if framerate is bad (<40), we should probably disable vsync so we're not dropping 50% of all frames (makes it feel REALLY laggy)
  • We could try using Preset2 (or what it is actually called) to mark certain areas as non-dirty
  • a very long window title makes the tooltip panel extra big and it wraps and looks bad (i might even drop the window title and the display name, they both look messy)
  • need a better font for the tips panel (??)
  • selection size text should move instead of disappear when it can't fit
  • full-screen zoom in Telegram is not recognized as a window and gets hidden

Other

  • Color picker should use HSL as the internal color representation to prevent sliders from being reset.
  • Double clicking a color from the palette should automatically close the dialog.

Bugs

  • Zoom is not always centered on the right place
  • Panning should clear auto-fit-center mode so that resizing the window doesn't re-fit

Clowd crash when trying save capture

Clowd crash when trying save capture
Whether directly with the "SAVE" button below the capture or via the editor

image

Clowd : 3.4.442+b786f0
Windows :
image

Improve usability of the mini color dialog

image

I have recently implemented a mini-color-picker in the experimental branch. This issue is to track some potential improvements.

  • Keyboard support (eg. Enter, Esc)
  • Remember recently used custom colors as a third swatch row. Store in global settings.
  • Allow you to switch between HEX, RGB, and HSL textbox modes similar to the devtools implementation
  • Apply color changes in real time and remove the "Cancel" and "Accept" buttons at the bottom.
  • Eye dropper to pick a color from screen

Session images should not be shared

Copying an image from one editor session to another does not work as expected. The object data (such as image file path) is copied to the session, but the images themselves are not copied. This means if you copy an image from session A to session B, and then delete session A, session B will be left in a corrupted state.

Tool bugs when editor loses focus

If the editor loses mouse capture and does not trigger the MouseUp event, this causes tools to break - thinking they are still operating even though the action should have been aborted. Tools should handle the LostMouseCapture event to account for this.

Error during video recording with sound

When starting to record a video with sound, this error occurs :

screenshot

We find the same message in the log generated in the destination folder. It does not happen when the sound is not activated in the recording settings.

Clowd version : 3.4.371+645041
OS : Windows 10 21H2

The creation of a gif also create a mp4

Hello,

When I use the video recording function, I select GIF.
Then I save it in a folder.
So I find in this folder with my GIF, but also the video in MP4

Clowd 3.4.484

image

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.