drawpile / Drawpile

A collaborative drawing program
http://drawpile.net/
GNU General Public License v3.0
1.03k stars 130 forks source link

Session List Overview - Thumbnail Preview #306

Open shadowcopalypse opened 8 years ago

shadowcopalypse commented 8 years ago

At the 'Find Server' menu it'd be interesting to have a preview of what the canvas looks like. And how many people have been drawing on and off in some order. Not usernames unless a 'buddy' system were invented, where people could friend each other.

Invertex commented 4 months ago

Was going to suggest similar.

This could be implemented as a periodic "capture snapshot" setting in the server options, which then outputs the snapshot to a folder that the server listings can then display it from. Though I'm not familiar enough with the server code to know if it has all the code for actually rendering the data it manages?"

If not I guess it could request it from a user, but then that might induce periodic moments of lag if it snapshots while they draw.

askmeaboutlo0m commented 4 months ago

@Invertex The drawing protocol is opaque to the server. It doesn't understand that part of it at all, it just relays between clients. So no, it has no capability to render anything.

One way this could be solved is like you said: ask an operator in the session to go generate a thumbnail. I don't think that would cause too much chugging, it can generate the image on a background thread just like it does when saving the canvas or whatever, and the resulting image can be scaled down to a reasonable size. So it wouldn't be any slower than if you pasted something.

An alternative would be to create a separate application that the server can call and tell it to render a thumbnail. This could be implemented as part of #1248, which would offload session resets to an external tool, which might as well generate a thumbnail along with the session reset image. That would only get you a thumbnail from the most recent reset though, and doing it more frequently would be pretty heavy on resources, with it replaying the whole session.