2009-11-04 5 views
0

Я создаю несколько диаграмм PNG для моего приложения Asp.net. С PNG я добираюсь до качества, которое мне нужно на Веб-сайте, но мне также нужно создать отчет, и я должен изменить размер своих диаграмм с 897x651 до 216x161. Как я могу достичь этого, не теряя слишком много качества. Я пробовал:Изменение размера PNG в приложении ASP.Net

  • Image.GetThumbnailImage (....)

I'm не очень доволен обоими способами. Пожалуйста, кто-нибудь может мне помочь? С PNGout вы можете конвертировать BMP в png без потери качества. Но вы не можете изменять размер

+1

Здесь вы можете найти полезные ответы: http://stackoverflow.com/questions/87753/resizing-an-image-without-losing-any-quality – Marek

+0

[Использовать библиотеку] (http://imageresizing.net) для ASP.NET. Не разбивайте сервер. –

ответ

0

На самом деле, у меня была та же проблема при изменении размера материала с использованием классов System.Drawing.

Класс Graphics (это также используется в ссылке, которую вы отправили) имеет свойство SmoothingMode и InterpolationMode. Я поставил их:

var graphics = Graphics.CreateFromImage(...); 
graphics.SmoothingMode = SmoothingMode.HighQuality; 
graphics.InterpolationMode = InterpolationMode.High; 

Это повысило качество довольно много (поставляется с потерей производительности на больших изображениях, хотя), но я только пробовал с JPGs до сих пор.

Чтобы быть честным, я скоро сбрасывал System.Drawing в моем приложении ASP.NET и использовал imagemagick (http://www.imagemagick.org/) для графического материала.

0

Абсолютный лучший способ не потерять качество (если вы создаете исходные изображения) - это сгенерировать изображение с нуля, но с меньшими размерами.

В противном случае встроенное масштабирование изображений в .NET более чем способно для изображений PNG. - См. Ссылку в комментарии Марека выше.

Смежные вопросы