2010-03-02 4 views
4

J'ai trouvé beaucoup de questions sur le redimensionnement des images dans .NET et autres, mais aucune d'entre elles ne semblait parler de redimensionnement d'images transparentes (à la fois 1bit comme GIF et w/canal alpha comme PNG), essayant évidemment de garder cette transparence.Comment redimensionner une image dans .NET avec transparence, à la fois GIF et PNG, en gardant la transparence info

Peut-être que GDI/GDI + manque un peu de code pour gérer facilement ces scénarios ou quoi d'autre? S'il n'est pas possible d'utiliser .NET tel quel, connaissez-vous une bibliothèque capable de le faire, même si elle n'est pas gratuite? Je ne voudrais pas que ce soit un outil de ligne de commande (sinon ImageMagick ferait probablement l'affaire facilement) pour une meilleure intégration et des fins d'automatisation.

Merci les gars. Oh, et les filles aussi.

Répondre

2

C'est effectivement ce que vous demandez Why does resizing a png image lose transparency?

+0

@lazarus: après 2 demi-journées de lecture comme celle que vous avez pointée, il m'arrive de lire celle-là aussi! mais je l'ai probablement lu trop vite et je n'ai pas compris la partie où il a été expliqué comment faire face à cela, et je me suis dit que c'était quelqu'un qui ne savait pas que vous perdiez généralement de la transparence dans le processus. Je vais maintenant essayer ce code et voir si cela fonctionne comme je le dois. Merci d'avance! – njy

+0

Pas de problème, je me suis battu avec le même problème récemment et j'ai trouvé ce post très utile. – Lazarus

+0

ok, j'ai essayé le code et il fonctionne magnifiquement pour le rééchelonnement png-> png. Mais si j'essaie de faire un rééchelonnement png-> gif, ça échoue. C'est peut-être bien, il est difficile de transformer un canal alpha 8 bits (png) en un bit 1 bit (gif). Mais, et c'est en partie à la fois évident et mauvais, cela ne fonctionne même pas pour le rééchelonnement gif-> gif. Une idée sur la façon dont il serait possible de produire des gifs redimensionnés correctement? – njy

0

La bibliothèque http://imageresizing.net préserve la transparence lors de la conversion entre les formats GIF et PNG. C'est open-source, donc vous pouvez vous référer au code source pour voir comment l'obtenir. Je crois que la génération de la palette est essentielle pour maintenir la transparence, mais cela fait un moment que j'ai apporté le dernier changement au code de quantification GIF et PNG - il est stable depuis plusieurs années.

Questions connexes