如果直接从文件获取图像,则可以使用以下代码以字节为单位获取原始文件的大小.
var fileLength = new FileInfo(filePath).Length;
如果从其他来源获取图像,例如获取一个位图并将其与其他图像合成,例如添加水印,则必须在运行时计算大小.您不能只使用原始文件大小,因为压缩可能会导致修改后输出数据的大小不同.在这种情况下,您可以使用MemoryStream将图像保存到:
long jpegByteSize; using (var ms = new MemoryStream(estimatedLength)) // estimatedLength can be original fileLength { image.Save(ms, ImageFormat.Jpeg); // save image to stream in Jpeg format jpegByteSize = ms.Length; }