Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Requests: Looking at helping you update #8

Open
Tendoncs opened this issue Dec 15, 2014 · 2 comments
Open

Feature Requests: Looking at helping you update #8

Tendoncs opened this issue Dec 15, 2014 · 2 comments

Comments

@Tendoncs
Copy link

I messages you on twitter. I love this program, It was a great little program to itch a scratch but it was not a perfect fit. I love your outlook "I love making simple things with great impact". That is my look on things to. Many people want to make everything do everything.

I am incharge of metrics display at my company. The processing of the data is taking more and more cpu so I want to have 1 metric box and capture it and send it to the other 10 tvs. I would like each tv to have a raspberry pi and all it does is turn the TVs on and off and display this Stream. This is what I was looking at updating to add a little more scope to the program. Here is a quick mock up. I have some working code. (Firewall fix, type selection and Quality)

  1. Screen selection
    Main
    all
    mix
    region - This is a key one, I only want to capture part of the screen.
    application.

A good example of options for Screen selection is software like ShareX

  1. Config json file
    Default - what was saved as default
    Load - load a config
    Save - save a config

  2. File type Selection - This one I got working code for.
    JPEG
    PNG
    BMP
    EMF
    JPG files are good for sending across networks due to the lack of size and quality. When I displayed it on 50 inch tvs there was a lot of artifacting. However with my test png file, with 80% quality and compression added looks great on a big TV.

I still need to add writing out what file type it is to the webserver folder. So the web server can pick it up and select the right code to display the image.

  1. Quality selection 10% - 100% - This one I got a "working" It was not as nice as I would like.
    It captures the image then applies ResizeImage method.
    public Bitmap ResizeImage(Bitmap b, int nWidth, int nHeight)
    {
        Bitmap result = new Bitmap(nWidth, nHeight);
        using (Graphics g = Graphics.FromImage((Image)result))
            g.DrawImage(b, 0, 0, nWidth, nHeight);
        return result;
    }

This code snippet was in my "c# cool code" folder so I do not know it's origins. However I think it may have been stackoverflow.

  1. Command line arguments.
    Adding command line that can start the software and run it without touching the server would be great. It can load the default config and start recording or the site.

Example: ScreenTask -Quite -Load default

  1. Image Compare.
    I noticed there was a lot of network traffic. I was thinking. Store the last written image in a bitmap/bmp and compare the next screenshot to it before writing it to disk. If we are taking images of every 1/2 seconds but the image is only changing once every 45 seconds that is 89 images that does not need to be written to disk or passed across the network.

  2. PNG compression.
    There are ways to strip out some of the image trash data we don't need for this application. Take a look at something like http://pnggauntlet.com/ it removed 35% of a file I didn't need. I wanted to look into adding this function to the software to slim down the network traffic.

  3. Split the device into a Client/Server/both set up.
    On some systems It may be nice to capture on one device and have the server on a second. Example: My capture screen box take a massive amount of CPU to process the metrics I am displaying. However it can't handle the CPU load for metrics and the requests.

  4. Network image storage.
    Part of 8. But may need to capture the screen on one box and push it to a network store or server on AWS or a server rack.

There are other things I was thinking about but I think these are the main ones I think would add to the software.

  1. Site.Google.com
    Split off of 8 and 9. I want to try to set it up so the site is displayed on site.google.com so that anyone with a company email can load the stream. Anyone outside can't see it unless we share it with them.

This is a wishlist item.

Here is the quick mockup I am using to test the functions I am working on.

screentask2

screentask3

@Cadcam62
Copy link

Hello, Tendoncs! Thank You for compiling our wishes in right way! The program is indeed very interesting... We neeeeeeed it to grow and become smarter!
Author, PLEASE... do not stop this project.

@ElBedeawi
Copy link
Collaborator

@Tendoncs Thanks very much for your list, I'm happy to say we have already implemented some of those like:

  1. Config file
  2. Quality selection slider

and surely the rest will be put into consideration for next releases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants