0

黒などの特定の色をキーアウトしながら、画像 (jpeg) をオーバーレイする方法はありますか? 画像内のすべての純粋な黒のピクセルが透明になるようにするには? Photoshop の「スクリーン」描画モードによく似ていますか?

キャンバス コンテキストのプロパティを調べてみましたが、うまくいかglobalCompositeOperationないようです。

ありがとう!

4

1 に答える 1

0

直接ピクセル操作を調べたいと思うでしょう。遅いですが、速度が良い結果を得ることほど重要でない場合は、実行してください。

for (y = 0; y < height; y++) {
    inpos = y * width * 4; // *4 for 4 ints per pixel
    outpos = inpos + w2 * 4
    for (x = 0; x < w2; x++) {

        g = imageData.data[inpos++] / 3; 
        a = imageData.data[inpos++];     

        if( g > someValue )
              a = someNewAlpha;

        imageData.data[outpos++] = a;
    }
}

詳細については、 http://beej.us/blog/data/html5s-canvas-2-pixel/を参照してください。

OpenGL には多くの方法がありますが、アプリケーションが何をすべきかわからないため、それらがアプリケーションに適用されるかどうかはわかりません。

于 2012-08-30T01:12:43.493 に答える