Move object by the size of the object? (Unity2D)

I am trying to move a sprite by its height.The Code I am using is:

Vector2 pos = transform.position;
transform.position= new Vector2 (pos.x, pos.y + transform.localScale.y);

But the sprite is not moving completely by the size, it stops at somewhere above middle.

The code works fine for simple(eg square) sprites created inside Unity. But it is not working for imported sprites. It gives different result for different sprite.

I think you are looking for Sprite.bounds.size.y (see this) instead of Transform.localScale.y. The local scale for sprites does not represent the true size as it is the size factor, not the measured size (if that makes sense).