[英]How to Convert and display only the first page from Multipage Blob .Tiff image to .Jpeg using C#
我在asp.net MVC中较新。 我的核心目标是将.tiff图像转换为.jpeg格式而不保存为文件。 为此,我调用了单独的文件(例如:gettiff.aspx)以在浏览器中显示.tiff图像。
我做了什么? 我将多页.tiff图像保存为blob。
我需要的? 需要通过在View中转换为.Jpeg来显示多页.tiff图像
我成功完成了什么? 要转换单页.tiff图像(文件/ blob),我转换为.jpeg并在VIEW中查看也没有任何问题
我困在哪里? 要转换多页.tiff图像(文件/ blob),我在转换过程中遇到了问题,如.Jpeg以及在VIEW中查看
示例代码:C#:在gettiff.aspx文件中
while (Reader.Read())
{
Bitmap bImage = ByteToImage((byte[])Reader["refImage"]);
byte[] array1 = ImageToByte2(myBmp);
Response.ContentType = "image/jpeg"; // if your image is a jpeg of course
Response.BinaryWrite((byte[])array1);
}
将Blob转换为位图:
public static Bitmap ByteToImage(byte[] blob)
{
using (MemoryStream mStream = new MemoryStream())
{
mStream.Write(blob, 0, blob.Length);
mStream.Seek(0, SeekOrigin.Begin);
Bitmap bm = new Bitmap(mStream);
return bm;
}
}
将位图转换为字节数组(这将以.jpeg格式给出)
public static byte[] ImageToByte2(Bitmap img)
{
byte[] byteArray = new byte[0];
using (MemoryStream stream = new MemoryStream())
{
//System.Drawing.Image.FromStream(stream);
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
byteArray = stream.ToArray();
}
return byteArray;
}
在视图中:
<img src="../GetTiffImage.aspx?batchImageId=@item.RefImgId&&ImgType=CBlob" width="150" height="100" style=" border:groove;border-color: #ff0000;" />
我需要转换为.jpeg并仅显示该多页.tiff blob中的第一页。
保存流时发生问题- “ GDI +中发生一般错误”
任何人都可以帮助我...
我在这里找到解决方案。 通过获取该单行代码,我可以显示.tiff blob图像
样例代码:
public static Bitmap ByteToImage(byte[] blob)
{
Bitmap bm = (Bitmap)((new ImageConverter()).ConvertFrom(blob));
return bm;
}
如果不使用Memory Stream,则使用此转换将能够在View中获取图像。 其余代码与问题相同
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.