2008-11-17 4 views
2

Nous avons une application Silverlight qui doit charger un certain nombre de fichiers .png. Nous pouvons charger les images correctement, mais Silverlight ne supporte pas la lecture des données de pixels de la classe Image. Quelqu'un peut-il suggérer une solution simple pour obtenir ces données? Notre meilleur pari actuel serait une bibliothèque de chargement .png de tierce partie, mais nous avons du mal à en trouver une appropriée.Obtention de données de pixels .png dans Silverlight

Répondre

2

Le décodage PNG est difficile à trouver.

J'ai écrit un article pour MSDN qui comprend un code source ouvert que j'ai bricolé à partir de Joe Stegman, FluxCapacity, et quelques autres. Il inclut le décodage PNG (ainsi que GIF, JPG et BMP) pour ceux de ce thread qui recherchent cela.

http://www.microsoft.com/youshapeit/msdn/ExpertKnowledge/2008-10/InnovateWithSilverlight2.aspx

Si vous ne vous inquiétez pas pour ma mise en œuvre pour Silverlight, vous pouvez aller directement à ce que je modifié pour le décodage PNG: http://sourceforge.net/projects/pr2/

Cheers!

Mise à jour: On dirait qu'ils n'offrent plus le code source sur le site, donc je republié le contenu ici: http://dimebrain.com/2009/01/innovate-with-silverlight-2-article-code-available.html

+0

Salut, Le lien vous votre article ne fonctionne plus. Y a-t-il un autre endroit où je peux le trouver? Merci. – Sorskoot

+0

Bonjour, c'est mis à jour maintenant. On dirait que c'est allé au seau d'archives assez rapidement. –

3

Il n'y a pas de classes intégrées pour la manipulation/génération d'imagettes basées sur des pixels dans Silverlight. Vous devez implémenter votre propre encodeur/décodeur PNG qui fonctionne sur un tableau d'octets contenant les informations d'image. Joe Stegman a implémenté un tel encodeur que vous devriez vérifier. Il a obtenu beaucoup d'informations sur les "images modifiables" dans Silverlight au http://blogs.msdn.com/jstegman/. Il fait des choses comme appliquer des filtres aux images, générer des mandrins et plus encore.

Ce blog discuter d'un codeur JPEG Silverilght (FJCore) vous pouvez utiliser pour redimensionner et recompresser les photos Taille du client: http://fluxcapacity.net/2008/07/14/fjcore-to-the-rescue/

Un autre outil est « Fluxify » qui vous permet de redimensionner et de télécharger des photos à l'aide Silverilght 2. Présent à

Alors oui, le traitement d'image côté client peut certainement être fait dans Silverilght 2. Happy hacking!

+0

Malheureusement, il semble que http://fluxtools.net est maintenant une ferme de liens. –

0

Merci - J'ai vu le blog Joe Stegman. C'est très pratique, mais le décodeur qu'il n'a pas est un PNG. Nous utilisons des fichiers PNG car nous avons besoin de transparence. Le lien FluxTools semble également être cassé. Je cherche toujours (sans succès) pour un décodeur PNG je peux tomber dans Silverlight.

0

Une option qui peut être plus facile (selon les circonstances) consiste à enregistrer les données de couleur et les données de transparence séparément, puis à appliquer par programme la transparence à l'image une fois chargée. De cette façon, vous pouvez enregistrer l'image en tant que gif 8 bits représentant le canal alpha, plus un fichier jpg ou bmp ou autre pour les données de couleur.

0

Dimebrain - ce lien msdn que vous avez fourni ne dispose pas d'un lien valide pour le code source - est-il possible que vous ayez un lien vers la source qui fonctionne?

Questions connexes