Я показываю изображения в карусели JS. Изображения очень большие, поэтому я сжимаю их в HTML. Я занимаюсь математикой, чтобы поддерживать соотношение сторон. В конце концов, хотя эти большие изображения уменьшают качество. Следует отметить, что эти изображения уже существуют на сервере, и я НЕ должен изменять размер исходного файла.Уменьшение потери качества изображения
Что вызывает ухудшение качества? Должен ли я придерживаться изображений меньшего размера, увеличьте конечный размер, который будет отображаться? Вот код, который поможет, максимальная ширина и высота в настоящее время составляют 270 и 180 соответственно. Все это C#.
// srcccccc is the image file. Can be any kind of extension jpg, png, etc.
if (srcccccc != "")
{
Globals.NavigateURL();
string path = PortalSettings.HomeDirectory + srcccccc;
using (System.Drawing.Image img = System.Drawing.Image.FromFile(@Server.MapPath(path)))
{
int[] newSizes = ResizeWithRatio(img);
contentsall += "<img src=\"" + PortalSettings.HomeDirectory + srcccccc + "\" alt=\"Image "
+ folderidddin + "\" height=\"" + newSizes[1] + "px\"" + "\" width=\"" + newSizes[0] + "px\" />";
}
}
// HTML is dynamically added later....
private int[] ResizeWithRatio(System.Drawing.Image img)
{
int[] sizes = new int[2];
if (img.Width > maxWidth || img.Height > maxHeight)
{
float ri = (float)img.Width/(float)img.Height;
float rs = (float)maxWidth/(float)maxHeight;
if (rs > ri)
{
sizes[0] = (int)((float)img.Width * (float)maxHeight/(float)img.Height);
sizes[1] = maxHeight;
}
else
{
sizes[0] = maxWidth;
sizes[1] = (int)((float)img.Height * (float)maxWidth/(float)img.Width);
}
}
else
{
sizes[0] = img.Width;
sizes[1] = img.Height;
}
return sizes;
}
возможно дубликат [Высокое качество изображения Масштабирование C#] (http://stackoverflow.com/questions/249587/high-quality-image-scaling-c-sharp) –
С помощью этого метода, качество измененного изображения будет до браузера, потому что вы просто манипулируете тегом изображения, а не самим изображением. Если вы изменили размер «System.Drawing.Image» на стороне сервера и вернули его в браузер как совершенно другое изображение, вы можете контролировать качество. –