2017-06-27 4 views
2

J'ai un simple script C# qui génère un Bitmap, l'enregistre sur le disque dur (PNG), vérifie la taille du fichier et en fonction de la taille du fichier qu'il va déplacer ou supprimer l'image.C# Taille compressée d'un bitmap sans le sauvegarder

Bitmap bmp = new Bitmap(1024, 768); 
bmp.save(@"C:\User\...\image.png"); 

FileInfo fi = new FileInfo (@"C:\User\...\image.png"); 

if (fi.length > 50000){ 
//do Something 
} 

est-il un autre moyen pour obtenir la taille compressée (RLE) du Bitmap sans les stocker localement?

+0

Qu'est-ce que vous fait penser .png utilise RLE? – Nyerguds

Répondre

5

Vous pouvez enregistrer l'image dans un lieu MemoryStream:

Bitmap bmp = new Bitmap(1024, 768); 
using (var ms = new MemoryStream()) 
{ 
    bmp.Save(ms, ImageFormat.Png); 
    if (ms.Length > 50000){ 
     //do Something 
    } 
} 
+1

Merci beaucoup! –

+0

Est-ce que '.Length' est fiable? Je pense que '.Position' devrait être la fin réelle des données écrites. – Nyerguds