Because making the fish actually occupy more screen space would eventually cause problems, you could instantly grow the fish, but then zoom the camera out over a couple seconds from the old zoom to the new zoom level. To zoom gradually you could use linear interpolation (often abbreviated 'lerp'), or you could use a logistic function to make the zoom smoother.
To do this, you would first store the current zoom level when a growth event happens:
oldScale = camera.scale;
newScale = player.originalWidth / player.width
zoomDuration = 500 // time it will take to zoom out in ticks
zoomElapsed = 0;
Then you would run a short function every tick to animate the zoom (here's how to do it with linear interpolation):
if(zoomElapsed < zoomDuration) {
camera.scale = (zoomElapsed/zoomDuration)*(newScale-oldScale)+oldScale;
zoomElapsed++;
} else {
camera.scale = newScale;
}
And that would be it. Note that the linear interpolation above is going to 'jerk' into movement then instantly stop when it hits the new scale; to avoid that, the logistic curve would do nicely because it has tapered ends.