Salut !
La question est dans le titre :
Comment récupérer et modifier la palette de couleurs d'un GIF possèdant un ou plusieurs sprites ?
Merci de votre aide.
Salut !
La question est dans le titre :
Comment récupérer et modifier la palette de couleurs d'un GIF possèdant un ou plusieurs sprites ?
Merci de votre aide.
tu peux chercher de la doc sur ce site http://www.wotsit.org/
tu trouveras sans doute plus de renseignements sur des sites de démomakers (j'avais lu quelques articles mais pas jusqu'au bout ca me semblai trop complexe )
sinon je peux te proposer de la doc pour le format PCX, j'avais même fait une unité pascal pour le lire et ca fonctionne très bien et l'algo de compression est extrêmement simple à comprendre, et tu aura aussi une palette de couleurs
description du format PCX : http://www.alrj.org/docs.php
mon unité pascal pour lire le pcx : http://www.shiva2k2.com/index.php?page=8
bon courage =)
Salut et merci pour vos réponses.
C'est bien d'avoir pensé au format PCX mais ça ne m'intéresse pas (pour le moment), mais ça pourra me servir à l'avenir.
Finalement, j'ai décidé de me jeter à l'eau en essayant de récupérer la palette de couleurs dans les octets du fichier. Je vais donc tenter de récupérer le format de ce type de fichier et analyser les octets de l'en-tête pour arriver au but... En espèrant que cela soit aussi facile que ça. Si c'est le cas, je posterai ici mon code avec une démo. En attendant, si vous-même ou d'autres membres ont des suggestions, je suis preneur.
à+
bon j'ai ressorti (qui a dit dépoussiéré ?) mes vieux bouquins et il semblerai que la table de couleur se situe de l'octet 13 (0dh) sur une longueur de 768 (256 * 3)
ça c pour le cas général, après il peut y avoir des palettes redéfinies pour chaque blocs de l'image, mais il semblerai que ce soit très peu utilisé
bon courage
Voilà !!
J'ai enfin réussi à récupérer la couleur transparente du GIF directement à partir des octets du fichier. La palette débute bien à l'offset 0D du fichier. Par contre, il faut savoir que le nombre de couleurs dans la palette est variable et je n'ai pas réussi à trouver de quel octet il s'agissait... Mais peu importe finalement, car la palette se termine toujours par la suite d'octets 21 FF 0B, j'ai donc simplement chargé le tableau de couleurs jusque là.
Plus intérressant : L'index retournant la couleur transparente dans la palette se situe 6 octets après la suite 21 F9 04. J'incrémente de 1 la composante verte de la couleur transparente dans le cas où celle-ci se trouverait déjà dans la palette. Ainsi, la couleur transparente sera forcément différente des autres couleurs de la palette... Ensuite, je mets tout ça dans un TMemoryStream et je charge l'image avec la méthode LoadFromStream du TRxGifAnimator (rxlib).
Vous trouverez le code de la fonction MyLoadGIF dans la démo suivante : http://sub0.developpez.com/delphi/opengif.zip
Merci à tous, à+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager