2011-08-13 5 views
3

私はカメラを使ってリアルタイム画像処理を行うアプリを作っています。私はJavaでコードを書いていますが、今はそのコードをネイティブコードに移植して処理速度を上げようとしています。 Javaコードの本質的な部分は、Color.rgb(android.Graphics libraryから)メソッドを使用して、ピクセル強度の配列を「カラーint」に変換することです(ドキュメントによって説明されています)。コードの特定の行がある:Color.rgbはAndroidで何をしますか?

ピクセル私はその後キャンバスに色intのこの配列を描画するdrawBitmapメソッドを使用0〜255の整数である
Color.rgb(pixel, pixel, pixel) 

。はい、私はこれがB & Wイメージになっていることを認識しています。なぜなら、それが私の必要なものだからです。

今私は、Cコードでcolor-intに変換する必要があり、C言語ではライブラリがないので上記の方法を使用することはできません。どのようなcolor-intsがあるのか​​分かりません最初の場所。誰かが私にColor.rgbメソッドが実際に行う値を明示することができれば、私は手動でそれをCの乾杯でコード化することができます。

+0

'Color#rgb()'メソッドのソースコードを見てみましたか? –

答えて

4

は、見てください:

public static int rgb(int red, int green, int blue) { 
    return (0xFF << 24) | (red << 16) | (green << 8) | blue; 
} 

Source

+0

ソースコードを見ることはできませんでした。乾杯、私は今、とてもばかげている。 – NavMan

+0

気にしないでください。多くはそれを認識しませんが、時にはかなり便利です:)。 – mibollma

1

A "色-INT" は、各成分が8ビット自体でパックされた32ビット(ARGB)のカラー値です。

rgbは、控え目な値を "color-int"に変換するヘルパーです。 alphaを見ると、rgbのソースを見ることなく、このことを推測するのに十分な情報がドキュメントに記載されています。red、​​およびblue

ハッピーコーディング。