Я не совсем уверен, что вы имеете в виду здесь. Вы говорите, что хотите просто определить ширину, но в «вертикальном» случае вы устанавливаете высоту равной ширине? В любом случае, если вы хотите изменить размер чего-либо, используя только ширину, используйте этот псевдокод:
ratio = width / height
newWidth = <the new width>
newHeight = newWidth / ratio
Если вы хотите изменить размер самого длинного размера до заданного значения, попробуйте это:
ratio = width / height
if ratio > 1 // wider than it is tall
newWidth = <theValue>
newHeight = newWidth / ratio
else // taller than it is wide
newHeight = <theValue>
newWidth = newHeight * ratio