3

色相、彩度、明度、コントラスト、シャープネスを調整するためのアプリケーションを作成しようとしています。上記のフィールド。 likeでhttp://ronbigelow.com/articles/workflow_basic/hue-saturation_tool.jpgAndroidイメージの鮮明化、彩度、色相、明るさ、コントラスト

私はこれを行う方法はわかりませんし、私はチュートリアルをオンラインで見つけることができません。 Androidにはこれを行う何かがありますか?個々のピクセルの色を操作する必要がありますか?ピクセルを混乱させなければならない場合、どうすればいいでしょうか?

答えて

4

はい、Androidには色を操作するツールがあり、他のものよりも簡単です。すべての画像の一般的なスペースを特に求めていることを行う唯一の方法は、個々のピクセルを変更することです。はるかに高速ですが、はるかに正確ではない他のクイックで汚いトリックがあります(ColorFilter)。

フエチェンジャー:

private Bitmap adjustedHue(Bitmap o, int deg) 
{ 
    Bitmap srca = o; 
    Bitmap bitmap = srca.copy(Bitmap.Config.ARGB_8888, true); 
    for(int x = 0;x < bitmap.getWidth();x++) 
     for(int y = 0;y < bitmap.getHeight();y++){ 
       int newPixel = hueChange(bitmap.getPixel(x,y),deg); 
       bitmap.setPixel(x, y, newPixel); 
     } 

    return bitmap; 
} 
private int hueChange(int startpixel,int deg){ 
    float[] hsv = new float[3];  //array to store HSV values 
    Color.colorToHSV(startpixel,hsv); //get original HSV values of pixel 
    hsv[0]=hsv[0]+deg;    //add the shift to the HUE of HSV array 
    hsv[0]=hsv[0]%360;    //confines hue to values:[0,360] 
    return Color.HSVToColor(Color.alpha(startpixel),hsv); 
} 

ここから、彩度/明度は自明です。しかし、これですべてがあなたが望むものを得ることができますが、それはちょっと遅いです。 getPixel()関数は特に激しいです。これらのことをリアルタイムで変更する場合は、最初にピクセルを「キャッシュ」することをおすすめします。たとえば、HUE、SATURATION、VALUE、ALPHAの値をすべて2次元配列として最初に格納し、マイナーチェンジごとにgetPixel()とColor.colorToHSV()を呼び出すのではなくTHEMを呼び出すと、コードの処理速度が大幅に向上します。

また、bitmap.getPixels()関数は私にとってはるかに優れています。最初に生成した配列を格納してから、それを反復処理することができます。

類似のピクセル固有の方法(ある値でVを掛けてオフセットを追加する)を使用して明度/コントラストを行うことはできますが...シャープネスはそれほど単純ではありません。シャープネスは孤立したカラーベースの変更ではなく、ピクチャ自体の変更(「畳み込み」と呼ばれます)です。つまり、変換するには、動作させるために隣接するピクセルについて何かを知る必要があります。私はこのための組み込みのアンドロイド機能を認識していない。しかし、それはいくつかの方法で行うことができます。

「シャープ」機能を使用する場合は、まず「ぼかし」機能を試してみましょう。それと似たようなプロセスですが、より直感的(そしてよりクール)です。また、ぼかしを使用して実際に画像をシャープにすることもできます。この男は(ソース/アプレットで)は、Javaで使用するために、このすべてを説明するには非常に良い仕事をしていません:?

http://www.jhlabs.com/ip/blurring.html

+1

私は、RGBの各値を取得する方法を知ってscroll down toパソコンへ転送感謝明るさ/コントラストを与えることができます君は? – pengwang

+1

それは非常に非常にsloooooooowww –

+0

gpuiimageライブラリを使用しています –

関連する問題