2013-11-20 1 views
0

Я хочу изменить размер изображения, проходящего через загрузчик файлов. Для этого я был направлен на следующее:Изменить размер изображения в asp.net Размер ошибки readonly

How to set Bitmap.Width and Bitmap.height

(Ответ Javed Акрам в)

Выполненный код:

Dim imgSmall As Bitmap = New Bitmap(FUpload.PostedFile.InputStream, False) 
imgSmall.Size = New Size(250, 300) 

Но дает мне сообщение об ошибке:

Size is read-only property. 

Как изменить размер изображения в этом случае?

ответ

2

Это только для чтения; вам придется создать из него новый растровый рисунок. Попробуйте следующее: -

internal static Image ScaleByPercent(Image image, Size size, float percent) 
{ 
    int sourceWidth = image.Width, 
     sourceHeight = image.Height; 

    int destWidth = (int)(sourceWidth * percent), 
     destHeight = (int)(sourceHeight * percent); 

    if (destWidth <= 0) 
    { 
     destWidth = 1; 
    } 

    if (destHeight <= 0) 
    { 
     destHeight = 1; 
    } 

    var resizedImage = new Bitmap(destWidth, destHeight, PixelFormat.Format24bppRgb); 
    resizedImage.SetResolution(image.HorizontalResolution, image.VerticalResolution); 

    // get handle to new bitmap 
    using (var graphics = Graphics.FromImage(resizedImage)) 
    { 
     InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 

     // create a rect covering the destination area 
     var destRect = new Rectangle(0, 0, destWidth, destHeight); 
     var brush = new SolidBrush(drawing.Color.White); 
     graphics.FillRectangle(brush, destRect); 

     // draw the source image to the destination rect 
     graphics.DrawImage(image, 
          destRect, 
          new Rectangle(0, 0, sourceWidth, sourceHeight), 
          GraphicsUnit.Pixel); 
    } 

    return resizedImage; 
} 

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

Надеюсь, что это поможет

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