Lien this10 post Je souhaite pouvoir lire une image en hauteur et en largeur sans lire dans l'ensemble du fichier en mémoire. Dans l'article, Frank Krueger mentionne qu'il existe une façon de le faire avec certaines classes d'imagerie WPF. Une idée sur la façon de le faire ??Utilisation des classes WPF Imaging - Obtention des dimensions de l'image sans lire le fichier entier
Répondre
Cela devrait le faire:
var bitmapFrame = BitmapFrame.Create(new Uri(@"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Winter.jpg"), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
Suite à la recommandation de jus Monsieur, voici un code alternatif qui évite le verrouillage du fichier image:
using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
var bitmapFrame = BitmapFrame.Create(stream, BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
}
J'ai fait une vérification rapide de l'allocation de mémoire en enveloppant ce code avec 'GC.GetTotalMemory (false)'. J'ai vérifié une image bitmap 4k (4096x2160, ~ 34MB sur le disque) et la quantité de mémoire allouée était d'environ 16ko. – cod3monk3y
De plus, en utilisant [SysInternals ProcessMonitor] (https://technet.microsoft.com/en-us/sysinternals/bb896645.aspx), j'ai observé seulement 4 événements 'ReadFile' à' (offset, length) = (0,16) , (0,14), (14,4), (18,36) 'pour un grand total de 70 octets lus dans le fichier. Fantastique! – cod3monk3y
@ cod3monk3y référencement ProcMon – JJS
- 1. Java Aide: Utilisation des classes
- 2. Lecture de blocs d'un fichier distant sans transférer le fichier entier?
- 3. Réduction des dimensions
- 4. Utilisation de log4j avec des classes héritées
- 5. Utilisation des mêmes classes App_Code sur des sites Web
- 6. Existe-t-il un moyen de déduire quel format d'image un fichier est, sans lire le fichier entier?
- 7. VB.NET obtention des attributs d'un fichier .wav
- 8. dimensionnement correct d'un iframe contenant des images de dimensions inconnues
- 9. Utilisation de classes locales avec des algorithmes STL
- 10. Utilisation d'amis avec des classes de base pour Boost Paramètre
- 11. Lire des fichiers dans un fichier JAR
- 12. Utilisation de LINQ avec des classes implémentant ICollection non générique
- 13. Comment lire et écrire des fichiers CSV en utilisant WPF?
- 14. Définition des dimensions UIImage sur l'image UITableViewCell
- 15. C# lire le contenu du fichier et trouver des chaînes
- 16. Enregistrer des Btrees dans un fichier disque et le lire
- 17. Lire un fichier avec des données
- 18. Utilisation de Mockito pour tester des classes abstraites
- 19. comment lire l'assemblage manifeste sans charger le fichier .dll
- 20. Aligner des colonnes sans WPF Grid
- 21. Récupération des dimensions SWF/FLV dans VB.net
- 22. écriture tableau à deux dimensions pour classer et lire tableau à deux dimensions de fichier en utilisant Visual C++
- 23. Les mystères de l'extension des classes d'animation WPF
- 24. Puis-je ajouter des classes au fichier rt.jar de sun?
- 25. Utilisation de Process.Start pour imprimer des documents sans afficher Word
- 26. WPF Utilisation des variables de ressources dans xaml
- 27. Comment redimensionner le contenu UIWebView à des dimensions spécifiques?
- 28. Lire des fichiers mp3 dans une page Web sans lacunes?
- 29. générer des classes de XSD
- 30. Flex: réutiliser des classes pour plusieurs projets sans copier-coller?
Vive je vais donner thiis un bon et laissez-vous savoir comment je vais. – vdhant
Fonctionne un régal, merci. –
Tu m'as battu Kent. :-) –