augmenter le nombre de bit par pixel pour le fomart GIF? - C - Programmation
Marsh Posté le 27-10-2011 à 13:15:29
Je comprend pas trop l'intérêt de faire ça:
1) Vos images à ce format gif modifié ne seront lisibles que par vous et par personne d'autre
2) Il y a déjà bien d'autres formats image qui supportent plus de 256 couleurs, alors pourquoi réinventer la roue.
Clairement si vous voulez modifier le format, il faut modifier
1) la taille des palettes
2) la taille des indices dans une palette
3) tout le code lisant/écrivant/modifiant les palettes ou les indices.
Que ça soit gifflib ou une autre, ce sera un gros travail de réécriture du code de ces librairies.
A+,
Marsh Posté le 27-10-2011 à 13:30:21
merci pour votre réponse, il parait que vous avez bien compris mon problème,
la qualité de l'image GIF n'est pas très bonne, c'est pour cela je voudrais augmenter le nombre de couleurs, tout en gardant la palette ( j'ai besoin d'elle),
avec giflib j'ai arrivé à faire 1) et 2) mais j'arrive pas à écrire cette image modifiée sous format GIF (des erreurs m'apparaissent de type :Fail to allocate required memory...)
Que voulez vous dire par "Vos images à ce format gif modifié ne seront lisibles que par vous et par personne d'autre "
Marsh Posté le 27-10-2011 à 13:50:36
GIF est un format de fichier, il n'a de l'intérêt que si des programmes sont capables de le lire. Créer un nouveau format de fichier basé sur GIF et levant certaines limitations pourrait éventuellement être intéressant, mais tant que le support de ce nouveau format ne sera pas répandu, les fichiers créés seront quasiment inutiles.
Pourquoi ne pas utiliser plutôt PNG?
Marsh Posté le 27-10-2011 à 14:06:04
Citation : mais j'arrive pas à écrire cette image modifiée sous format GIF |
Normal puisque votre modification en fait autre chose que du format gif. Il vous faudra d'ailleurs modifier le header des fichiers pour ne pas être pris par du Gif par un programme standard.
Citation : des erreurs m'apparaissent de type :Fail to allocate required memory... |
Vu que vous modifiez la giflib, sous débugger, vous devriez savoir ce qui déclenche cela dans le code.
Citation : Que voulez vous dire par "Vos images à ce format gif modifié ne seront lisibles que par vous et par personne d'autre " |
Qu'un outil sachant afficher du gif standard ne sera pas capable de lire vos fichiers. Et que vous n'aurez pas le droit de les utiliser pour autre chose que vos besoins personnels, vu que le Gif est un format couvert par la propriété intellectuelle de Compuserve (même s'il n'est plus soumis à royalties pour son usage, je ne suis pas sur que cela donne le droit d'en diffuser une variante non autorisée). Si le format PNG a été inventé, c'est qu'il y avait des raisons.
A+,
Marsh Posté le 27-10-2011 à 14:28:10
png permet la transparence comme le gif mais pas de faire des animations autant que je sache... A part du flash, vidéo, html5, je vois pas quel format de fichier permet actuellement de faire de que faisait le gif, tout en levant la limite des 256 couleurs
Marsh Posté le 27-10-2011 à 15:03:54
C'est pas comme si les formats APNG et MNG avait été créé pour cela, hein.
Bon, dommage que MNG soit assez peu utilisé, MNG-VLC devrait suffire aux besoins simples.
A+,
Marsh Posté le 27-10-2011 à 15:05:25
hajouja a écrit : merci pour votre réponse, il parait que vous avez bien compris mon problème, |
Seuls les programmes intégrant la bibliothèque gif modifiée pourront lire les images au format gif modifié, c'est à dire .. aucun programme, à part ceux que tu vas écrire pour ca.
Un navigateur qui ouvrira ton fichier gif modifié renverra une erreur et n'affichera rien.
Conclusion, ça n'a aucun intérêt, autant prendre un format d'image supportant déjà un nombre de couleur plus élevé.
Marsh Posté le 27-10-2011 à 16:51:05
merci pour tous , je travaille sur images GIF, car j'ai besoin de sa palette, en fait ma tache principale est le tatouage de ce format par d'autres informations ce dernier basé sur sa palette, ainsi que l'animation.
peut être je dois chercher une autre solution pour améliorer la qualité d'image GIF.
Marsh Posté le 27-10-2011 à 17:08:09
En tout cas, si tu as besoin de plus de 255 couleurs par image, tu peux laisser tomber le gif.
A+,
Marsh Posté le 27-10-2011 à 17:14:32
Wikipedia dit :
Citation : En 1989, le format GIF a été étendu (format GIF89a au lieu de GIF87a) [...] Chaque image d'une animation peut avoir sa propre palette, ce qui permet de créer des images contenant 16 777 215 couleurs simultanément, mais d'une taille non négligeable. |
En fait, il faut composer une image à partir de plusieurs sous-images, chacune ayant sa palette de 256 couleurs. C'est indiqué dans le wiki en anglais
Citation : GIF89a was designed based on the principle of rendering images (known as frames when used for animation) to a logical, fixed-size screen. Each image could optionally have no delay after it is rendered, and could have its own 256-color palette. Also, each image need not fill the entire logical screen, and the animation can cease after the last frame; it need not begin again. The multi-frame, zero-delay, and unique-palette features, optionally combined with transparency, allow for each image to replace only a portion of the previous image's pixel data. When used without looping, a more-than-256-color final result can be achieved. |
Edit : Mais c'est vrai que ce serait plus simple d'utiliser un format classique pour une animation, comme ceux cités précédemment, ou comme AVI, MOV.
Marsh Posté le 27-10-2011 à 17:54:48
Citation : Edit : Mais c'est vrai que ce serait plus simple d'utiliser un format classique pour une animation, comme ceux cités précédemment, ou comme AVI, MOV. |
AVI ou MOV... sont des formats conteneurs vidéo, mais le GIF est considéré comme un fichier image malgré qu'il supporte l'animation
Citation : En fait, il faut composer une image à partir de plusieurs sous-images, chacune ayant sa palette de 256 couleurs. C'est indiqué dans le wiki en anglais |
oui tout à fait, 'estc ce que fait GIF, en fait pour un fichier GIF qui a par exemple 2 frames je peux avoir 256 *2 couleur , c'est à dire 256 par frame mais en comparant la qualité d'image (du frame) par rapport à la qualité d'image du vidéo (AVI par exemple) on remarque bien que celle de la vidéo est meilleure (surtout pour le dégradé ) donc j'ai pensé à augmenter le nombre de couleur par image GIF (par frame), mais apparament ça ne marche pas
Marsh Posté le 27-10-2011 à 18:05:49
gilou a écrit : C'est pas comme si les formats APNG et MNG avait été créé pour cela, hein. |
J'avais jamais entendu parler de ces formats Merci, j'aurai appris un truc aujourd'hui
Marsh Posté le 27-10-2011 à 18:46:44
je viens de trouver sur la toile, qu'on peut créer avoir une image GIF ayant plus que 256 couleur c'est intéressant!!
http://compression-links.info/Link [...] xample.htm
Marsh Posté le 27-10-2011 à 19:34:41
Sauf que c'est pas maintenu depuis 10 ans, et ça utilise ce qu'on t'a dit précédemment: ça découpe ton image en sous images (chacune avec 256 couleurs max) que ça recolle au moment de l'affichage.
Et en plus, pour des raisons de licence LZW (valable il y a 10 ans mais plus maintenant), cette librairie ne compresse pas les images...
A+,
Marsh Posté le 27-10-2011 à 11:54:27
Bonjour à tous,
je travaille sur le format GIF, en fait on sais que GIF utilise seulement 256 couleurs , mon but est d'augmenter ce nombre de couleurs,
alors je dois augmenter la taille de la table de couleurs et aussi le nombre de bit par pixel qui est fixé à 8 bits?
est ce que je peux modifier ça, car je travaille sur giflib et j'ai pas arrivé à une solution?
et connaissez vous d'autres bibliothèques qui peuvent m'aider à faire ça.
merci d'avance