Asp.net 将位图数据转换为图像标记格式

Asp.net 将位图数据转换为图像标记格式,asp.net,bitmapdata,Asp.net,Bitmapdata,我有创建缩略图的功能: 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 = Smo

我有创建缩略图的功能:

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);
bmp图像将采用位图格式。

如何转换它,以便在图像标记中指定并显示在页面上?

您可以按以下方式返回字节数组

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

使用通用处理程序,您可以在图像标记中显示此数据。

我从几个想法中构建了一个片段,这非常有效:

 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))" />
Bitmap-original=新位图(@“C:\path\img.jpg”);
矩形srrect=新矩形(0,0,100,100);
位图裁剪=(位图)original.Clone(srcRect,original.PixelFormat);
字节[]单位字节;
使用(MemoryStream stream=new MemoryStream())
{
保存(stream、System.Drawing.Imaging.ImageFormat.Png);
imgbytes=stream.ToArray();
}
在矩形内,偏移量为(0,0),从原始图像裁剪100x100像素