Чтобы изображения сохраняли четкость, вам необходимо поддерживать соотношение сторон. Соотношение сторон - это соотношение ширины и высоты изображений, и если вы изменяете размеры изображений, сохраняя соотношение, то их четкость сохраняется. Вы получаете испорченное изображение, потому что 2448/3264! = 600/500.
Теперь размер тега изменяется по соотношению сторон, если вы задаете только один из атрибутов ширины или высоты. например:
<img src="your_src" width=600>
Это позволит поддерживать соотношение сторон (вычисляет необходимую высоту). Однако это может иногда приводить к проблемам, если у вас есть ограничение максимальной высоты, потому что пересчитанная высота может превышать высоту div, если у вашего div максимальная высота.
Если у вас есть ограничения max-height и max-width, вы можете использовать следующий код для изменения размера изображения с помощью JS. Я предполагаю, что значения max-width и max-height равны 600px и 500px соответственно, и вы можете изменить их в соответствии с вашими потребностями:
height = this.clientHeight;
width = this.clientWidth;
aspectRatio = width / height;
if (height > width)
{
height = 500;
width = height * aspectRatio;
}
else if (width > height)
{
width = 600;
height = width / aspectRatio;
}
this.setAttribute("height", height+"px");
this.setAttribute("width", width+"px");