lup*_*ito 4 c# jpeg image-manipulation image-processing
我有PNG或BMP格式的图像.我想在不保存 jpeg的情况下将其压缩为jpeg之后找出该图像的文件大小.
到目前为止,我通过以下方式做到了:
frameNormal.Save("temp.jpg", ImageFormat.Jpeg);
tempFile = new FileInfo("temp.jpg");
filesizeJPG = tempFile.Length;
Run Code Online (Sandbox Code Playgroud)
但由于磁盘访问速度慢,程序耗时太长.有没有办法计算新创建的jpeg的文件大小?就像在内存中转换PNG并读取大小一样......
很感谢任何形式的帮助 :-)
您可以将图像数据写入a Stream而不是提供文件名:
using (MemoryStream mem = new MemoryStream())
{
frameNormal.Save(mem, ImageFormat.Jpeg);
filesizeJPG = mem.Length;
}
Run Code Online (Sandbox Code Playgroud)