I want to send a canvas with transparency. Unfortunetly the rendered canvas as PNG is very big. Is there anything I can do to make it smaller for the transferring?
var canvasPNG = canvas.toDataURL(); //sending it to the server
Not really if you send it as a png with alpha channel.
What you could do is to send the image as two jpeg images: one image containing the rgb, and another greyscale image representing the alpha channel, and then create a png on the server from those.