J'écris actuellement un système qui stocke des métadonnées pour environ 140 000 images ish stockées dans une bibliothèque d'images héritée qui sont déplacées vers le stockage en nuage. J'utilise ce qui suit pour obtenir les données jpg ...Comment obtenir la taille de fichier d'un "System.Drawing.Image"
System.Drawing.Image image = System.Drawing.Image.FromFile("filePath");
Im assez nouveau pour la manipulation d'images, mais cela est bien beau pour obtenir des valeurs simples comme la largeur, la hauteur, rapport d'aspect, etc, mais ce que je ne peux pas travailler comment pour récupérer la taille du fichier physique du jpg exprimée en octets. Toute aide serait très appréciée.
Merci
solution finale incluant un hachage MD5 de l'image pour une comparaison ultérieure
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();
}