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

VC++ .NET Discussion :

traiter les images


Sujet :

VC++ .NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut traiter les images
    Bonjours
    j ai recuperer un exemple pour vc++2005 pour convertier une image en tableau dons le code est le suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    void LockUnlockBitsExample( PaintEventArgs^ e )
    {
       // Create a new bitmap.
       Bitmap^ bmp = gcnew Bitmap( "c:\\1.jpg" );
     
       // Lock the bitmap's bits.  
       Rectangle rect = Rectangle(0,0,bmp->Width,bmp->Height);
       System::Drawing::Imaging::BitmapData^ bmpData = bmp->LockBits( rect, System::Drawing::Imaging::ImageLockMode::ReadWrite, bmp->PixelFormat );
     
       // Get the address of the first line.
       IntPtr ptr = bmpData->Scan0;
     
       // Declare an array to hold the bytes of the bitmap.
       // This code is specific to a bitmap with 24 bits per pixels.
       int bytes = bmp->Width * bmp->Height * 3;
       array<Byte>^rgbValues = gcnew array<Byte>(bytes);
     
       // Copy the RGB values into the array.
       System::Runtime::InteropServices::Marshal::Copy( ptr, rgbValues, 0, bytes );
     
       // Set every red value to 255.  
       for ( int counter = 0; counter < rgbValues->Length; counter += 3 )
          rgbValues[ counter ] = 255;
     
       // Copy the RGB values back to the bitmap
       System::Runtime::InteropServices::Marshal::Copy( rgbValues, 0, ptr, bytes );
     
       // Unlock the bits.
       bmp->UnlockBits( bmpData );
     
       // Draw the modified image.
       e->Graphics->DrawImage( bmp, 0, 150 );
    }
    Le problème c est que quand j ai une image .JPG le remplissage est bleu au lieu de rouge, et quand je charge une bmp j ai un lignage horizontal des 3 couleurs.
    J aurais aimais comprendre pourquoi ou une solution pour résoudre ce problème.
    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Par défaut
    http://www.developerfusion.co.uk/show/5377/2/
    un exemple en c#
    ou il explique un decalage sur certaine image

Discussions similaires

  1. logiciel pour capturer les images et les traiter sous forme d'un video
    Par Rose-de-sable dans le forum Autres Logiciels
    Réponses: 8
    Dernier message: 12/08/2010, 19h42
  2. Quelle méthode utiliser pour traiter les images
    Par babozfr dans le forum VC++ .NET
    Réponses: 3
    Dernier message: 02/03/2007, 15h40
  3. Réponses: 4
    Dernier message: 18/08/2003, 09h53
  4. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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