从ImageFormat.MemoryBMP确定文件类型

本文关键字:文件 类型 ImageFormat MemoryBMP | 更新日期: 2023-09-27 18:09:53

调整图像大小后,我的resize函数返回新绘制的图像。我遇到了一个问题,我需要确定返回的Image的文件扩展名应该是什么。我以前使用的是Image.RawFormat属性,但每次从此函数返回图像时,它都具有ImageFormat.MemoryBMP,而不是ImageFormat.JpegImageFormat.Gif,例如。

所以基本上我的问题是,我怎么能确定什么文件类型的新调整大小的Image应该?

public static Image ResizeImage(Image imageToResize, int width, int height)
        {
            // Create a new empty image
            Image resizedImage = new Bitmap(width, height);
            // Create a new graphic from image
            Graphics graphic = Graphics.FromImage(resizedImage);
            // Set graphics modes
            graphic.SmoothingMode = SmoothingMode.HighQuality;
            graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
            graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
            // Copy each property from old iamge to new image
            foreach (var prop in imageToResize.PropertyItems)
            {
                resizedImage.SetPropertyItem(prop);
            }
            // Draw the new Image at the resized size
            graphic.DrawImage(imageToResize, new Rectangle(0, 0, width, height));
            // Return the new image
            return resizedImage;
        }

从ImageFormat.MemoryBMP确定文件类型

调整后的图像不是基于任何文件的格式,它是图像中像素的未压缩内存表示。

要将该映像保存回磁盘,数据需要以选定的格式进行编码,您必须指定该格式。看看Save方法,它把ImageFormat作为第二个参数,让Jpeg或任何最适合你应用的格式