web-dev-qa-db-ja.com

セピア、白黒、ぼかしなどのビットマップにさまざまな画像効果(フィルター)を適用するにはどうすればよいですか?

画像に異なる効果を適用する方法がわかりません。

EffectFactory クラスと Effect クラスのエフェクトクラスを見てきましたが、メソッドが1つあります apply ですが、inputTexIdとoptputTexIdに何を渡すかわかりません。 、および新しい更新された画像を取得する場所、更新された画像をimageViewに保存する方法、

この問題への取り組み方を教えてください。 Imageにエフェクトを提供するために利用できるオープンソースライブラリはありますか?.

ありがとう、

11
Nixit Patel

私はJerry's Java Image Processing Libraryを実装しました。私にとっては問題なく動作します。

ダウンロードAndroidJars

編集

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
//Find the bitmap's width height
int width = AndroidUtils.getBitmapOfWidth(getResources(), R.drawable.ic_launcher);
int height = AndroidUtils.getBitmapOfHeight(getResources(), R.drawable.ic_launcher);
//Create a filter object.
GaussianFilter filter = new GaussianFilter();
//set???? function to specify the various settings.
filter.setRadius(8.5f);
//Change int Array into a bitmap
int[] src = AndroidUtils.bitmapToIntArray(bitmap);
//Applies a filter.
filter.filter(src, width, height);
//Change the Bitmap int Array (Supports only ARGB_8888)
Bitmap dstBitmap = Bitmap.createBitmap(src, width, height, Config.ARGB_8888);

詳細については、Android-jhlabsをご覧ください。

9
Chintan Rathod

CatalanoFrameworkを使用できます。

http://code.google.com/p/catalano-framework/

FastBitmap image = new FastBitmap(bitmap);
image.toRGB();

//Sepia
Sepia sepia = new Sepia();
sepia.applyInPlace(image);

//Blur
Blur blur = new Blur();
blur.applyInPlace(image);

//Emboss
Emboss emboss = new Emboss();
emboss.applyInPlace(image);

//Retrieve bitmap
bitmap = fb.toBitmap();
6
Diego Catalano

はい、aviarysdkを使用して多くのエフェクトを使用できます。

訪問 http://www.aviary.com/Android

より高度な効果については、Opencvを使用できます。これらは最高です。

5
Sujith

this プロジェクトを試すこともできます ビットマップ処理

フィルター:-

  • ブーストアップカラー
  • 輝度
  • 色深度
  • カラーフィルター
  • コントラスト
  • エンボス
  • フリップと回転
  • ガンマ
  • ガウスぼかし
  • グレースケール
  • 色相
  • 反転
  • ノイズ
  • 飽和
  • セピア
  • 研ぐ
  • スケッチ
  • 色合い
  • ビネット

Javaにあり、ピクセルラベル処理を行うため、ほとんどのC++ベースのライブラリほど高速ではありませんが、サムネイルなどのビットマップサイズがそれほど大きくない場合はうまく機能します。

2
Hitesh Sahu

これは優れたライブラリであり、gradleと簡単に統合できます。高速で効率的で、1日を節約できます。

https://github.com/wasabeef/picasso-transformations

これは、その使用方法の例です。

 Transformation trans1 = new ContrastFilterTransformation(getActivity(), 1.5f);
                        Transformation trans2 = new BrightnessFilterTransformation(getActivity(), 0.2f);
                        Picasso.with(getActivity()).load(uri)
                                .transform(trans1).transform(trans2).into(imageview3);
1
Gal Rom