5 votes

Y a-t-il des outils .NET pour déformer/déformer des images ?

Je voudrais pouvoir déformer une image de manière programmée en C#. Plus précisément, je voudrais re-pondérer une image spatialement, de sorte que les pixels centraux soient agrandis et que les pixels périphériques occupent proportionnellement moins d'espace. Pensez à un objectif fish-eye. Un peu.

Y a-t-il des outils .NET qui peuvent faire cela? Peu importe s'ils sont intégrés au cœur de .NET ou un module complémentaire.

1voto

baultista Points 964

Hmm... vous pourriez essayer d'utiliser l'API d'ImageMagick pour effectuer toute opération dont vous avez besoin.

http://www.imagemagick.org/script/api.php

Ils ont deux solutions .NET disponibles. Vous devriez pouvoir les étudier et trouver celle qui convient le mieux à vos besoins. L'une de leurs fonctionnalités comprend une distorsion générale des pixels, que vous pourriez peut-être utiliser pour répondre à vos besoins.

1voto

Lou Franco Points 48823

Déni de responsabilité : Je travaille pour Atalasoft

Notre SDK d'imagerie gratuit DotImage Photo Free peut faire ceci :

http://www.atalasoft.com/free-dotnet-image-sdk

Regardez Atalasoft.Imaging.ImageProcessing.Transforms.LensTransform. Vous feriez quelque chose comme

AtalaImage img = new AtalaImage("file.jpg");
LensTransform cmd = new LensTransform();
cmd.Radius = 100;
cmd.Offset = new Point(100, 100); // définir le centre
AtalaImage img2 = cmd.Apply(img).Image;

1voto

Vous pouvez facilement obtenir de tels effets avec les effets de shader WPF.

Si vous n'en avez pas entendu parler, l'idée est que vous pouvez exécuter des effets de shader de pixel Direct3D sur n'importe quelle image. Cela rendra très facile à réaliser des effets comme vous le décrivez à des fréquences d'images temps réel.

À bien des égards, c'est plus facile que de les écrire en C# ou C, car vous n'avez pas besoin de vous soucier de l'adressage des échantillons de couleur dans un tampon d'image, des vérifications de plage, et de boucler correctement sur vos données, car tout cela est géré par le matériel de la carte vidéo.

Voici un lien vers une vidéo de channel9 présentant les effets d'exemple dans la bibliothèque d'exemples wpffx.

Je pense que le "grossissement en douceur" est très proche de ce que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X