MaxSter
@MaxSter
Software engineer

Как бороться с пропаданием деталей изображения после сохранения (.NET Bitmap)?

Сохраняю изображения на диск, одно и то же изображение может быть разного разрешения.
В случае достаточного разрешения изображение не теряет детали:
2f5aec4ebd2141ce99b362eaa743aa16.png
При меньшем разрешении после сохранения детали пропадают:
096f01d446c443c8bbdee782fadc7ba7.png
Существуют ли какие-либо алгоритмы для сохранения таким образом, чтобы оставались по крайней мере линии шириной в 1px?
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
ErmIg
@ErmIg
Программист
Зависит от того, в каком формате вы сохраняете картинку. Если вам нужно без потерь, то рекомендую использовать формат PNG.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Rainberd
Ресайз делаете через System.Drawing.Graphics? Попробуйте поиграть с SmoothingMode, InterpolationMode, PixelOffsetMode:
var newBmp = new Bitmap(newWidth, newHeight);
using (Graphics g = Graphics.FromImage(newBmp)) {
    g.SmoothingMode = SmoothingMode.HighQuality;
    g.InterpolationMode = InterpolationMode.HighQualityBicubic; // или HighQualityBilinear
    g.PixelOffsetMode = PixelOffsetMode.HighQuality;
    g.DrawImage(oldBmp, new Rectangle(0, 0, newWidth, newHeight));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы