繁体   English   中英

如何使用C#仅将第一页从Multipage Blob .Tiff图像转换和显示为.Jpeg

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM