无法将小图像调整为较大的图像

时间:2013-04-17 15:13:32

标签: c# asp.net-mvc image-resizing

在我的程序中,用户可以将图像上传到特定大小,之后我将调整图像大小。如果图像很大,它的效果很好,但是如果图像很小,我会尝试调整大图像模糊(基本上它只是缩放而不是调整大小)...有人可以帮我怎么做。谢谢!!

这是我的程序

 public static Image ScaleBySize(Image imgPhoto, int size)
        {
            int logoSize = size;

            float sourceWidth = imgPhoto.Width;
            float sourceHeight = imgPhoto.Height;
            float destHeight = 0;
            float destWidth = 0;
            int sourceX = 0;
            int sourceY = 0;
            int destX = 0;
            int destY = 0;




            if (sourceWidth > size || sourceWidth < size) { destWidth = size; }
            if (sourceHeight > size || sourceHeight < size) { destHeight = size; }


            Bitmap bmPhoto = new Bitmap((int)destWidth, (int)destHeight,PixelFormat.Format32bppPArgb);
            bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);

            Graphics grPhoto = Graphics.FromImage(bmPhoto);
            grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
            grPhoto.DrawImage(imgPhoto,new Rectangle(destX, destY, (int)destWidth, (int)destHeight),new Rectangle(sourceX, sourceY, (int)sourceWidth, (int)sourceHeight),GraphicsUnit.Pixel);
            grPhoto.Dispose();

            return bmPhoto;
        }

1 个答案:

答案 0 :(得分:2)

当然,由于小图像中没有细节,因此大图像会模糊。该计划只是&#34;伸展&#34;每个像素填充更大的区域。