调整图像大小后,我的调整大小函数将返回一个新绘制的图像。我遇到了一个问题,需要确定返回的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;
        }

最佳答案

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

要将此镜像保存回磁盘,需要以您必须指定的选定格式对数据进行编码。看一下Save方法,它将ImageFormat作为第二个参数,使它成为Jpeg或最适合您的应用程序的格式。

关于c# - 从ImageFormat.MemoryBMP确定文件类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7549616/

10-12 04:49