Сложно, но можно:
1. Получи начальное значение самой картинки в px (условно 1920х1080 px)
2. Получи размер div, в котором картинка (допустим 1440x900px).
В нашем случае размер BG будет высчитываться от высоты картинки и высоты блока.
Соответственно 1080/900 = 1.2. где 1.2, это соотношение, на которое уменьшена твоя картинка.
Теперь, зная соотношение, узнаем ширину. Для этого, делим ширину картинки на соотношение (1920/1.2) и получаем 1600 px.
Итог: размер бекграунда 1600x900px.
Случаи, где картинка или блок вертикальные думаю сможешь доработать сам, по аналогии с примером выше. Главное, это определить от чего базируется размер картинки в блоке. Думаю на моем примере сможешь без труда дописать необходимый функционал