IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Convert Bitmap 1bpp en tableau de byte[] puis en byte[,]


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Apprenti Developpeur
    Inscrit en
    Juillet 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprenti Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Convert Bitmap 1bpp en tableau de byte[] puis en byte[,]
    Bonjour a tous,

    Je rencontre un problème lors du développement de mon application. Je souhaite découper une Image choisi en plusieurs bande de même taille.

    Pour cela j'ouvre mon Image avec un objet Bitmap (l'image est au format *.tif en 1bpp)
    Je souhaite convertir ce bitmap en tableau de byte pour pouvoir manipuler mon image comme une matrice et/ou un vecteur.
    Enfin la hauteur des bandes que je souhaite avoir est fixe, et donc si mon la hauteur de mon Image de départ n'est pas un multiple de la hauteur des bandes je souhaite compléter l'image de départ avec des pixels blancs.

    Cela fait peut être beaucoup d'information mais j'espère que quelqu'un pourrait m'aider a trouver une solution !

    Merci beaucoup

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 192
    Points : 5 774
    Points
    5 774
    Par défaut
    Et tu en est ou ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Apprenti Developpeur
    Inscrit en
    Juillet 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprenti Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour j'ai finalement trouver une solution qui est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                Bitmap IMG_IN = new Bitmap(PathImage); 
                BitmapData bmpData = null;
                bmpData = IMG_IN.LockBits(new System.Drawing.Rectangle(0, 0, IMG_IN.Width, IMG_IN.Height), ImageLockMode.ReadOnly, IMG_IN.PixelFormat);
                int TailleByte = bmpData.Stride * IMG_IN.Height;
                byte[] byteData = new byte[TailleByte];
                for (int i = 0; i < byteData.Length; i++)
                {
                    byteData[i] = 0;
                }
                IntPtr ptr = bmpData.Scan0; // Pointeur sur la premier éléments 
                int Stride_IMG_IN = bmpData.Stride;
                Marshal.Copy(ptr, byteData, 0, TailleByte);
                // byteData est maintenant rempli avec l'ensemble des pixel de IMG_IN
    J'ai testé et cela fonctionne si tu as des améliorations a me proposer je suis preneur !

    LuffyTS

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 192
    Points : 5 774
    Points
    5 774
    Par défaut
    Sinon ou croise aussi ce code

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[] bytes = (byte[])TypeDescriptor.GetConverter(bmp).ConvertTo(bmp, typeof(byte[]));
    ou celui la
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public byte[] ImageToByte2(Image img)
    {
        using (var stream = new MemoryStream())
        {
            img.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
            return stream.ToArray();
        }
    }

Discussions similaires

  1. [JAXB-RMI] Convertir un object en flux XML puis en byte[]
    Par ScReeeN dans le forum Persistance des données
    Réponses: 0
    Dernier message: 08/05/2011, 20h35
  2. Stocker pixels d'un bitmap dans un tableau
    Par bricechris dans le forum Débuter
    Réponses: 1
    Dernier message: 08/05/2011, 06h26
  3. Bitmap 1bpp (monochrome) en Compact Framework 3.5
    Par r_kommander dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 30/08/2010, 16h03
  4. Stocker une image Bitmap dans un tableau
    Par ctn82 dans le forum C++
    Réponses: 1
    Dernier message: 04/03/2008, 15h16
  5. Créer un tableau en mémoire, puis l'afficher
    Par patbeautifulday1 dans le forum Général VBA
    Réponses: 2
    Dernier message: 29/02/2008, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo