2016-10-14 2 views
0

Я хочу показать созданный образ растрового изображения. Не сохранять его.Не сохранять новый растровый рисунок C#

Im использует растровое изображение с графикой в ​​C# и им, надеясь вернуть новое изображение, не сохраняя новое изображение.

C#

private void GenerateBanner(string titleText) { 

    Bitmap bannerSource = new Bitmap(DefaultBannerPath); 
    //bannerSource.Save(PhysicalBannerPath); 
    RectangleF rectf = new RectangleF(430, 50, 650, 50); 

    using (Graphics g = Graphics.FromImage(bannerSource)) 
    { 
     g.SmoothingMode = SmoothingMode.AntiAlias; 
     g.InterpolationMode = InterpolationMode.HighQualityBicubic; 
     g.PixelOffsetMode = PixelOffsetMode.HighQuality; 
     g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; 
     g.DrawString(titleText, new Font("Bradley Hand ITC", 100, FontStyle.Bold), Brushes.White, rectf); 
     //bannerSource.Save(PhysicalBannerPath); 
    } 
} 
+1

Winforms? Используйте 'PictureBox' на' Form' –

+0

, пожалуйста, скажите, используете ли вы WinForms или WPF? – Fredrik

+0

его собственный контроль над классом. он будет на странице aspx. @FredrikRedin –

ответ

2

Чтобы вернуть это изображение со страницы ASPX (можно использовать как img src в HTML), вы должны будете использовать MemoryStream и преобразовать его в byte[]; затем используйте метод Response.BinaryWrite:

 byte[] bytes; 
     using (var stream = new System.IO.MemoryStream()) 
     { 
      bannerSource.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); 
      bytes = stream.ToArray(); 
     } 

     Response.ContentType = "image/jpeg"; 
     Response.Clear(); 
     Response.BinaryWrite(bytes); 
     Response.End(); 
+1

_Дополнительная информация: вам нужно создать '' на вашей странице html, а 'getimage.aspx' должен запустить указанный выше код. Поэтому вам нужно реализовать его в два этапа. Первый - это создание ссылки на изображение. Вторая интерпретирует запрос, чтобы вернуть правильное изображение. –

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