Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SDL]Memoire ram et "loader" une partie d'image

    25 juin 2007 à 12:25:04

    Bonjour à tous,
    J'ai deux petites questions :
    1) Est-ce normal qu'un image au format PNG me prenne 8mo de ram, or que sur le disque dur elle me prend 800 ko ?

    2) Est-il possible de "loader" une partie d'une image grace à la SDL, et si oui, comment ?

    Merci de me répondre.
    Gregouar.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 juin 2007 à 12:55:40

      1) Sur ton DD , elle est compressé par PNG , pas en RAM.
      Convertie ton imag en bitmap et tu verra qu'elle devrai alors faire 8 Mo(puisque le format bmp ne compresse pas les données)

      2) Tu charge ton image en entier et tu la découpe avec avec le 2eme paramtere de SDL_BlittSurface.
      En effet il suffit au lieu de blitter sur l'ecran , de blitter sur une surface alloué dynamiquement
      • Partager sur Facebook
      • Partager sur Twitter
        25 juin 2007 à 13:06:28

        SDL travaille uniquement avec des images décompréssées de type bitmap. Donc lorsque tu charge ton png il est transformé en bitmap et ca prend beaucoup plus de place.

        Pour charger des images dans la RAM tu crée une surface de la taille que tu veux avec SDL_CreateRGBSurface. Il y a des flag expliqués dans le tuto de matéo pour choisir de creer la surface en RAM ou en mémoire vidéo.

        Je ne sais pas si tu peux cherger des morceaux directement, mais il est possible de tout charger puis de faire un blit dansune surface plus petite de la partie intéréssante.
        • Partager sur Facebook
        • Partager sur Twitter
          25 juin 2007 à 13:17:24

          Je sais que l'on peut "blitter" une partie d'image, mais en fait, j'aurais aimer pouvoir charger une partie d'image, pour ne pas encombrer ma ram...
          • Partager sur Facebook
          • Partager sur Twitter
            25 juin 2007 à 18:49:39

            découpe ton image toi meme sur paint ou photoshop
            (c'est bourrin et ca prendra moin de place)
            • Partager sur Facebook
            • Partager sur Twitter
              26 juin 2007 à 9:22:20

              T'inquiète pas avec 8 Mo, tu ne vas pas l'encombrer surtout si tu la libères juste après.
              • Partager sur Facebook
              • Partager sur Twitter
                26 juin 2007 à 14:49:49

                Ou alors si tu veux le faire entièrement dans ton programme:

                1) charger l'image complète
                2) recouper la partie qui t'intéresse
                3) coller la partie qui t'intéresse sur une nouvelle surface
                4) deleter la première surface.
                • Partager sur Facebook
                • Partager sur Twitter
                Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

                [SDL]Memoire ram et "loader" une partie d'image

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown