augmenter le nombre de bit par pixel pour le fomart GIF?

augmenter le nombre de bit par pixel pour le fomart GIF? - C - Programmation

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  

Reply

Marsh Posté le 27-10-2011 à 11:54:27   

Reply

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+,


Message édité par gilou le 27-10-2011 à 13:17:51

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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 "

Reply

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?


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

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+,


Message édité par gilou le 27-10-2011 à 14:15:48

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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 :/


Message édité par rufo le 27-10-2011 à 14:28:18

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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+,

Message cité 1 fois
Message édité par gilou le 27-10-2011 à 15:07:32

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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,
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 "


 
 
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é.
 

Reply

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.

Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 27-10-2011 à 17:08:09   

Reply

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.
 
(source : http://fr.wikipedia.org/wiki/Graph [...] ge_Format)


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.
For example, a GIF can be encoded to render as a series of overlapping full-screen images, each image filling in color that wasn't in the previous one. Transparent pixels can be used to preserve colors from previous images.
A similar method that does not use transparency is to encode the GIF to render as a series of less-than-full-screen images adjacent to each other, rather than overlapping.
(source : http://en.wikipedia.org/wiki/Graph [...] ge_Format)


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.


Message édité par olivthill le 27-10-2011 à 17:22:17
Reply

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 :(

Reply

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.
Bon, dommage que MNG soit assez peu utilisé, MNG-VLC devrait suffire aux besoins simples.
A+,


 
J'avais jamais entendu parler de ces formats :/ Merci, j'aurai appris un truc aujourd'hui :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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

Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed