Looking at the line
Dim gr_dest As Graphics = Graphics.FromImage(bm_dest)
You try to create a graphics object from an empty image you have just created on the previous line. Is this intentional or should it be
Dim gr_dest As Graphics = Graphics.FromImage(bm_source)
[ADDED]
Since the exception is in creation of the bitmap, ensure that the result of the multiplication is feasible. For example, could it be that the scale_factor is 0.