Moved error handling to scale function, if invalid image
Only save if any fields are updated, addresses #1