2014-01-29 2 views
1

у меня есть функция, которая создаст миниатюрное изображение:преобразования растровых данных в формат изображение тега

Image photo=System.Drawing.Image.FromStream(myFile.InputStream); 

Bitmap bmp = new Bitmap(100, 100); 
Graphics graphic = Graphics.FromImage(bmp); 
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic; 
graphic.SmoothingMode = SmoothingMode.HighQuality; 
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality; 
graphic.CompositingQuality = CompositingQuality.HighQuality; 
graphic.DrawImage(photo, 0, 0, 100, 100); 

ВМР изображения будет в растровом формате.
Как его преобразовать, чтобы назначить в теге изображения и отображении на странице?

ответ

1

Вы можете вернуть массив байтов следующим образом.

MemoryStream stream = new MemoryStream(); 
bmp.Save(stream, ImageFormat.Jpeg); 
Byte[] buffer = new byte[0]; 
buffer = stream.ToArray(); 
return buffer; 

и используя общий обработчик, вы можете отобразить эти данные в теге изображения.

0

Я строю отрывок из нескольких идей, это работает отлично:

Bitmap original = new Bitmap(@"C:\path\img.jpg"); 
Rectangle srcRect = new Rectangle(0, 0, 100, 100); 
Bitmap cropped = (Bitmap)original.Clone(srcRect, original.PixelFormat); 
byte[] imgbytes;  
using (MemoryStream stream = new MemoryStream()) 
{ 
     cropped.Save(stream, System.Drawing.Imaging.ImageFormat.Png); 
     imgbytes = stream.ToArray(); 
} 
<img src="@String.Format("data:image/png;base64,{0}", Convert.ToBase64String(imgbytes))" /> 

В прямоугольнике смещение (0,0) и культуры 100x100 пикселей с Orignal.

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