more precise resize with shift