Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вопрос по масштабированию изображения


Автор: Ground 8.2.2011, 14:48
Добрый день! Необходимо масштабировать картинку из 40х40 в 200х200. Перебрал кучу примеров, все дают одинаковый результат - просто копируют малую картинку в большую, без растяжения. Вот код, уже даже не знаю на что думать, в какую сторону копать:
Код

zoomedArea = new Bitmap(40, 40);

/* Рисование на zoomedArea */

zoomedAreaNew = new Bitmap(200, 200);

using (Graphics g = Graphics.FromImage(zoomedAreaNew))
{
        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low;

        g.DrawImage(zoomedArea, 0, 0, 200, 200);
}

pbZoomArea.Image = zoomedAreaNew;

pbZoomArea.Refresh();

Автор: Bestoloch 8.2.2011, 15:41
http://blogs.msdn.com/b/acoat/archive/2007/05/09/resize-images-a-thumbnail-maker.aspx там есть пример...

Автор: Georgich 8.2.2011, 15:51
Ground, вот тут (http://www.codeproject.com/Articles/109013/Image-in-Csharp-Save-Resize-and-Convert-to-Binary.aspx) можете посмотреть еще.

Автор: Ground 8.2.2011, 16:04
Bestoloch, спасибо за пример, но код у нас аналогичный, как я понимаю.
Код

                Bitmap loBMP = new Bitmap(lcFilename);
                bmpOut = new Bitmap(lnNewWidth, lnNewHeight);
                Graphics g = Graphics.FromImage(bmpOut);
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight);
                g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)