C#でPhotoshopのフィルタを実装します
質問
私はそれらを実装する方法を知っているが、私は知らないピクセルによって変換ピクセルを適用するかどうかであるか、単一のコールを使用して、画像全体に影響を与える別の方法などはあるのでしょうか?
私の知る限りGet.Setピクセルが非常に遅いです。彼らはこのようにそれをしなかった場合、私はわからない。
それはグレースケールですので、もし/単純なケースとして、フィルタを非飽和、どの一つはそれを書くのでしょうか?
解決
あなたはイメージをロックしてからメモリに直接とsetPixelメソッドをバイパスして仕事をしなければなりません。 // WWW: <ここのか、さらに良いのhref = "HTTPを参照してください。ここを
bobpowell.net/lockingbits.htm」のrel = "nofollowをnoreferrer">次のようにあなたが255に青の色を設定することができますexamleについて
BitmapData bmd=bm.LockBits(new Rectangle(0, 0, 10, 10), System.Drawing.Imaging.ImageLockMode.ReadOnly, bm.PixelFormat);
int PixelSize=4;
for(int y=0; y<bmd.Height; y++)
{
byte* row=(byte *)bmd.Scan0+(y*bmd.Stride);
for(int x=0; x<bmd.Width; x++)
{
row[x*PixelSize]=255;
}
} // it is copied from the last provided link.
他のヒント
でも高速なパフォーマンスを実現するために、あなたはすべての.NET WPFビジュアルオブジェクトだけでなく、画像で動作しますWPFのピクセルシェーダ効果の実装を、チェックアウトすることがあります。
このような効果のためにいくつかの基本的な実装手順を説明する記事を見てみましょう。
ます。http://bursjootech.blogspot。 COM / 2008/06 /グレースケール効果-ピクセルシェーダー効果-in.htmlする
所属していません StackOverflow