我目前正在编写一个系统,该系统存储大约 140,000 张 ish 图像的元数据,这些图像存储在一个遗留图像库中,这些图像正在移动到云存储中。我正在使用以下内容获取jpg数据...
System.Drawing.Image image = System.Drawing.Image.FromFile("filePath");
我对图像处理很陌生,但这对于获取宽度、高度、纵横比等简单值来说很好,但我无法解决的是如何检索以字节表示的 jpg 的物理文件大小。任何帮助将非常感激。
谢谢
最终解决方案,包括图像的 MD5 哈希,以供以后比较
System.Drawing.Image image = System.Drawing.Image.FromFile(filePath);
if (image != null)
{
int width = image.Width;
int height = image.Height;
decimal aspectRatio = width > height ? decimal.divide(width, height) : decimal.divide(height, width);
int fileSize = (int)new System.IO.FileInfo(filePath).Length;
using (System.IO.MemoryStream stream = new System.IO.MemoryStream(fileSize))
{
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
Byte[] imageBytes = stream.GetBuffer();
System.Security.Cryptography.MD5CryptoServiceProvider provider = new System.Security.Cryptography.MD5CryptoServiceProvider();
Byte[] hash = provider.ComputeHash(imageBytes);
System.Text.StringBuilder hashBuilder = new System.Text.StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
hashBuilder.Append(hash[i].ToString("X2"));
}
string md5 = hashBuilder.ToString();
}
image.Dispose();
}