Maison > développement back-end > C++ > Comment puis-je récupérer efficacement les dimensions de l'image sans charger l'intégralité du fichier ?

Comment puis-je récupérer efficacement les dimensions de l'image sans charger l'intégralité du fichier ?

DDD
Libérer: 2025-01-10 12:06:44
original
796 Les gens l'ont consulté

How Can I Efficiently Retrieve Image Dimensions Without Loading the Entire File?

Obtenez efficacement la taille de l'image

Dans de nombreuses tâches de traitement d'image, la détermination de la taille de l'image est cruciale. Cependant, la méthode traditionnelle de chargement de l’intégralité du fichier image est inefficace lorsque seules les informations de taille sont requises.

Heureusement, il existe d'autres moyens d'obtenir les dimensions de l'image sans charger l'intégralité du fichier. L'une de ces techniques consiste à analyser les informations d'en-tête de l'image, qui contiennent souvent des informations telles que les dimensions.

Pour mettre en œuvre cette méthode, il est recommandé d'utiliser une bibliothèque de traitement d'image bien testée qui prend en charge plusieurs formats d'image. Si vous ne pouvez pas utiliser la bibliothèque, vous pouvez écrire du code personnalisé pour analyser l'en-tête de l'image.

Voici un exemple d'extrait de code qui gère plusieurs formats d'image courants :

<code>// ... (代码已省略) ...

public static Size GetDimensions(string path)
{
    using (BinaryReader br = new BinaryReader(File.OpenRead(path)))
    {
        try
        {
            return GetDimensions(br);
        }
        catch (ArgumentException e)
        {
            if (e.Message.StartsWith("无法识别图像格式。"))
            {
                throw new ArgumentException("无法识别图像格式。", "path", e);
            }
            else
            {
                throw e;
            }
        }
    }
}

// ... (代码已省略) ...

private static Size DecodeBitmap(BinaryReader br)
{
    br.ReadBytes(16);
    int width = br.ReadInt32();
    int height = br.ReadInt32();
    return new Size(width, height);
}

// ... (其他格式解码器已省略) ...</code>
Copier après la connexion

Cette technique offre un moyen plus efficace d'obtenir les dimensions de l'image, en particulier lorsque vous travaillez avec des fichiers image volumineux ou plusieurs images.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal