1

我有以下代码,其中我没有理解:

double savesize = (8.0 * ((height * (width / 3) * 3) / 3 - 1)) / 1024;

所以请帮助我。

代码:

    private void ImageBrowseButton_Click(object sender, EventArgs e)
    {
        DialogResult dr = openFileDialog1.ShowDialog();
        if (dr == DialogResult.OK)
        {
            loadedImagePath = openFileDialog1.FileName;
            imageTextBox.Text= loadedImagePath;
            loadedImage = Image.FromFile(loadedImagePath);
            height = loadedImage.Height;
            width = loadedImage.Width;
            loadedBitmap = new Bitmap(loadedImage);

            FileInfo imginf = new FileInfo(loadedImagePath);
            float size = (float)imginf.Length / 1024;
            SizeLabel.Text = size.ToString() + " KB";
            HeightLabel.Text = loadedImage.Height.ToString() + " Pixel";
            WidthLabel.Text = loadedImage.Width.ToString() + " Pixel";
            double savesize = (8.0 * ((height * (width / 3) * 3) / 3 - 1)) / 1024;
            SaveSizeLabel.Text = savesize.ToString() + " KB";
        }

    }

谢谢

4

1 回答 1

0

它是保存图像所需的千字节数的估计值。要保存为位图(无损),公式将是(来自Zicara

以千字节为单位的文件大小 = 分辨率 2 x 宽度 x 高度 x 每个样本的位数 ÷ 8,192

在您的示例中,我假设图像没有被保存为位图,而是以一种有损格式,在给定这些尺寸的图像的情况下生成该大小的文件 - 查看您实际保存文件的方式可能会使您更加轻松脱落。

于 2013-03-13T16:49:00.120 回答