C# 使用c按大小而不是高度和宽度调整图像大小#

C# 使用c按大小而不是高度和宽度调整图像大小#,c#,C#,我想将所有图像的大小调整为50 kb。不管高度和宽度是多少 我知道如何使用静态高度和宽度调整大小: public static Image resizeImage(Image imgToResize, Size size) { return (Image)(new Bitmap(imgToResize, size)); } yourImage = resizeImage(yourImage, new Size(50,50)); 如何在不指定静态高度和宽度的情况下调整图像大小?但是,通过

我想将所有图像的大小调整为50 kb。不管高度和宽度是多少

我知道如何使用静态高度和宽度调整大小:

public static Image resizeImage(Image imgToResize, Size size)
{
    return (Image)(new Bitmap(imgToResize, size));
}
yourImage = resizeImage(yourImage, new Size(50,50));

如何在不指定静态高度和宽度的情况下调整图像大小?但是,通过指定一个新的大小(以kb为单位),我想说,在获得文件之前,您不可能知道文件大小。因此,在我看来,如果您想实现这一点,您只需调整大小,检查文件大小(写入MemoryStream可能已经是一个很好的近似方法),然后如果对结果不满意,再重新调整大小。
据我所知,没有一种方法可以自动执行此操作。

我想您也想保持图像的纵横比?是否可以选择将每个图像裁剪为1x1像素,并使用元数据填充到50 KB?请阅读并展示一些合理的要求以及您尝试过的内容。由于图像数据的不同性质,我认为很难确定给定所需文件大小的可用分辨率。