Maison > développement back-end > C++ > Comment puis-je convertir un bitmap en tableau d'octets sans utiliser de fichiers temporaires ?

Comment puis-je convertir un bitmap en tableau d'octets sans utiliser de fichiers temporaires ?

Barbara Streisand
Libérer: 2025-01-23 15:02:11
original
442 Les gens l'ont consulté

How Can I Convert a Bitmap to a Byte Array Without Using Temporary Files?

Adieu les fichiers temporaires : deux méthodes efficaces de conversion de Bitmap en tableau d'octets

La conversion du bitmap Windows en tableau d'octets est une tâche courante dans le développement de logiciels. Bien que l'enregistrement du Bitmap dans un fichier temporaire, puis sa lecture à l'aide de FileStream soient une méthode simple, ce n'est pas la solution la plus efficace. Cet article présentera deux méthodes alternatives qui ne nécessitent pas de fichiers temporaires.

Méthode 1 : classe ImageConverter

La classe ImageConverter fournit une méthode de conversion pratique qui peut être complétée avec seulement quelques lignes de code :

public static byte[] ImageToByte(Image img)
{
    ImageConverter converter = new ImageConverter();
    return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
Copier après la connexion

Méthode 2 : MemoryStream (MemoryStream)

Une autre approche consiste à utiliser des flux de mémoire. Cette approche simule l'enregistrement dans un fichier temporaire, mais conserve les données en mémoire :

public static byte[] ImageToByte2(Image img)
{
    using (var stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        return stream.ToArray();
    }
}
Copier après la connexion

La méthode de streaming de mémoire offre une plus grande flexibilité, vous pouvez spécifier le format d'image et choisir de l'enregistrer sur la mémoire ou sur le disque.

Résumé

ImageConverter et MemoryStream offrent des alternatives viables pour la conversion de bitmap en tableau d'octets sans utiliser de fichiers temporaires. La méthode ImageConverter est plus concise, tandis que la méthode MemoryStream offre plus de contrôle. Vous pouvez choisir la méthode la plus appropriée en fonction de vos besoins spécifiques.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal