You are scaling bitmap data which means you will have loss in quality when resizing it. If you went from a small size to a large size then the image will be blurry due to the interpolation that takes place.
What you would want to do is to store your drawings as vectors:
- Keep the drawn points in arrays "internally"
- When needed, redraw all the points to the canvas
- When resized, scale the points accordingly, then redraw as above.
My suggestion when it comes to rescaling the points is to keep and use the original points as a basis every time as this will give you a more accurate scaling.
There are plenty of examples here on SO on how to store drawn points as well as redraw them. One that could be used for basis is for example: HTML canvas art, generate coordinates data from sketch.