プログラムでC#の画像を歪めることができるようにしたいと思います。具体的には、中央のピクセルが拡大され、周辺のピクセルが比例して占めるスペースが少なくなるように、画像を空間的に再重み付けしたいと思います。魚眼レンズを考えてみてください。ちょっと。
これを実行できる.NETツールはありますか?それらが.NETコアに組み込まれているのか、アドオンに組み込まれているのかは関係ありません。
プログラムでC#の画像を歪めることができるようにしたいと思います。具体的には、中央のピクセルが拡大され、周辺のピクセルが比例して占めるスペースが少なくなるように、画像を空間的に再重み付けしたいと思います。魚眼レンズを考えてみてください。ちょっと。
これを実行できる.NETツールはありますか?それらが.NETコアに組み込まれているのか、アドオンに組み込まれているのかは関係ありません。
うーん...ImageMagickのAPIを使用して、必要な操作を実行してみてください。
http://www.imagemagick.org/script/api.php
2つの.NETソリューションを利用できます。自分のニーズに最適なものを調査して見つけることができるはずです。それらの機能の1つには、ニーズに合わせて使用できる可能性のある一般化されたピクセル歪みが含まれます。
免責事項:私はAtalasoftで働いています
私たちの無料のイメージングSDKDotImagePhoto Freeは、これを行うことができます:
http://www.atalasoft.com/free-dotnet-image-sdk
を見てくださいAtalasoft.Imaging.ImageProcessing.Transforms.LensTransform
。あなたは次のようなことをします
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;
このような効果は、WPFシェーダー効果を使用すると非常に簡単に実現できます。
それらについて聞いたことがない場合は、Direct3Dピクセルシェーダー効果を任意の画像に対して実行できるという考えです。これにより、リアルタイムのフレームレートで説明するようなエフェクトを非常に簡単に実行できるようになります。
多くの点で、これはC#またはCで書き込むよりも簡単です。これは、画像バッファー内のカラーサンプルのアドレス指定、範囲チェック、またはこれらすべてがによって処理されるため、データを正しくループすることを心配する必要がないためです。ビデオカードハードウェア。
これは、wpffxサンプルライブラリのエフェクト例を紹介するchannel9ビデオへのリンクです。
「なめらかな倍率」はあなたが望むものに非常に近いと思います。