Hi,
I think this should do the trick (from my notes):
// Offset UV so that it begins from center of the image
i.uv -= 0.5;
// Scale it
i.uv *= _Scale;
// Move it back to center
i.uv += 0.5;
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
So you move that 0-1 UV space so that it’s origin is in the center of the image, then scale and move back.
EDIT: Tried it, work fine (scales from center). But you have to of course provide correct scale factor to get the desired image cropping.
Either generate the scaling values by calculating them or use some list of predefined values…