私は写真を持っており、すべてのピクセルを取得し、RGB を乗算して数を求めています。R * number > 255 の場合も注意が必要です。この場合、r = 255 です。1024x768 の画像を完成させるのに約 10 秒以上かかります。明るさを行う一般的なソフトウェアは、それを行うのに1秒もかかりません。戦略を改善するためのアイデアはありますか? ありがとう。
4 に答える
同様の問題がありました:
.NET で ColorMatrix を使用して、明るさ、色、彩度、色相を変更する方法
明るさだけの場合、colormatrix は問題なく機能します。コントラストなどの使用を開始する場合は、他のソリューションを使用する必要があります。SetPixel が一番遅い部分のようです。これをすばやく行うには、次のソリューションを参照してください。
http://www.codeproject.com/KB/GDI-plus/csharpgraphicfilters11.aspx
ColorMatrixを使用するのがおそらく最善の方法です。次の記事をご覧ください: http://www.c-sharpcorner.com/UploadFile/mahesh/Transformations0512192005050129AM/Transformations05.aspx
マルチメガバイトの画像で簡単な画像操作を行ったとき、安全でないコードとポインター操作を使用して生のバイトに到達することで、パフォーマンスを大幅に改善しました。
これにより、正しい方向に進む可能性がありますhttp://wcode.net/2009/08/unsafe-in-c-and-image-processing/
このサイトは私を大いに助けてくれました: http://blogs.msdn.com/b/llobo/archive/2007/03/08/bitmapsource-bitmap-interop.aspx