2012-07-19 18 views
5

Mi piacerebbe essere in grado di distorcere a livello di codice un'immagine in C#. In particolare, mi piacerebbe ri-pesare un'immagine spazialmente, in modo tale che i pixel centrali siano espansi ei pixel periferici occupino proporzionalmente meno spazio. Pensa alle lenti fish-eye. Tipo.Esistono strumenti .NET per distorcere/deformare le immagini?

Esistono strumenti .NET che possono farlo? Non mi importa se sono integrati nel core .NET o in un addon.

risposta

1

Disclaimer: io lavoro per Atalasoft

nostro di imaging libero SDK DotImage Fotografia, può fare questo:

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

Guarda Atalasoft.Imaging.ImageProcessing.Transforms.LensTransform. Si potrebbe fare qualcosa di simile

AtalaImage img = new AtalaImage("file.jpg"); 
LensTransform cmd = new LensTransform(); 
cmd.Radius = 100; 
cmd.Offset = new Point(100, 100); // set the center 
AtalaImage img2 = cmd.Apply(img).Image; 
1

Hmm ... si può provare a utilizzare l'API di ImageMagick per eseguire qualsiasi operazione necessaria.

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

Hanno due .NET soluzioni disponibili. Dovresti essere in grado di investigare e trovare quello più adatto alle tue esigenze. Una delle loro caratteristiche include la distorsione dei pixel generalizzata, che potresti essere in grado di utilizzare per soddisfare le tue esigenze.

1

È possibile ottenere tali effetti abbastanza facilmente con WPF effetti shader.

Se non ne hai mai sentito parlare, l'idea è che puoi eseguire effetti pixel shader Direct3D su qualsiasi immagine. Questo renderà molto facile fare effetti come quelli che descrivi in ​​framerate in tempo reale.

In molti casi è più facile che scriverli in C# o C, perché non è necessario preoccuparsi di definire gli esempi di colori in un buffer immagine, controllare l'intervallo e/o eseguire il looping dei dati come tutti questo è gestito dall'hardware della scheda video.

Here's a link in un video canale9 che mostra gli effetti di esempio nella libreria di campioni wpffx.

Penso che "l'ingrandimento regolare" sia molto vicino a ciò che si desidera.

Problemi correlati