Convertir en noir et blanc avec il

Description

Bon cette source n'est pas en C# je sais, mais voilà je savait pas où la poster (je n'ai pas trouvé le site IL).

Cette source fais suite aux différents post de TKFE sur son blog (Un grand merci pour lui, je n'aurais jamais tenter l'IL sans ces post sur localloc et cpblk). Elle reprend un thème que j'explore en ce moment, la conversion d'image en noir et blanc.

L?algo choisi est le plus simple (Halftone) mais aussi le plus sale (Je ne voulais pas mettre la charrue avant les boeufs).

L?intérêt de cette source n'est pas particulièrement dans l'algo mais plutôt dans l'aspect ludique de la découverte des tréfonds de .NET (en effet pour écrire cette petite fonction il m'a fallu retrousser mes manches, lire des kilos de lignes sur les spécifications du langage IL et j'ai perdu quelques cheveux au passage).

Vous aurez compris que c'est la première fois que je me frotte à L'IL et je n'est donc pas la prétention de considérer mon code comme totalement optimisé n'y même exempt de bug donc si vous avez quelques trucs et astuces, je suis preneur ...

La fonction est enrober dans une petite UI en C# (ha bas oui quand même), et j'ai essayé de la commenter de mon mieux (la fonction, pas l'UI)).

Sinon faites attention,
Vous trouverez dans le projet le fichier TestIL.IL -> c'est la source IL de la fonction
Pour l'éditer, Notpad ou VS2005 (mais oubliez l'intellisens).
Pour la compiler : ILASM TestIL.IL /DLL
Vous aurez ainsi une dll à importer en référence dans un projet.

Dans le cas présent J'ai ajouté un événement de pré génération pour compiler la dll à chaque génération du projet mais il est possible que vous deviez le modifier pour refléter les chemins de votre machine...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.