Нормальная растеризация - вы картинку с viewbox 2300*2500px уменьшаете до viewport 7vw.
Дисплеи у нас не векторные - все равно все в итоге отображается в растровом формате. Если до 1vw уменьшите - все еще больше поплывет.
Способов много, можно две картинки наложить друг на друга и использовать z-index, чтобы отображать белую непрозрачную картинку поверх картинки изображения.
Или пустить картинку фоном, а белую рамку как img
Или использовать svg маску.