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
Barbara Streisandoriginal
2025-01-23 15:02:11427parcourir

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 :

<code class="language-c#">public static byte[] ImageToByte(Image img)
{
    ImageConverter converter = new ImageConverter();
    return (byte[])converter.ConvertTo(img, typeof(byte[]));
}</code>

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 :

<code class="language-c#">public static byte[] ImageToByte2(Image img)
{
    using (var stream = new MemoryStream())
    {
        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
        return stream.ToArray();
    }
}</code>

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:
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