Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android圖像處理之GPUImage for Android

Android圖像處理之GPUImage for Android

編輯:關於Android編程

GPUImage 是iOS下一個開源的基於GPU的圖像處理庫,提供各種各樣的圖像處理濾鏡,並且支持照相機和攝像機的實時濾鏡。GPUImage for Android是它在Android下的實現,同樣也是開源的,托管在Github上。

版本:android-gpuimage-1.1.1


Android模擬器上不支持OpenGL ES 2.0所以會報錯,可以選用Genymotion測試,或真機上運行。

引用 Caused by: java.lang.IllegalStateException: OpenGL ES 2.0 is not supported on this phone.

(1)使用自定義的ImageView
Xml代碼


Java代碼
mImageView.setFilter(new GPUImageSepiaFilter()); // sepia
mImageView.setFilter(new GPUImageGrayscaleFilter()); // gray
mImageView.setFilter(new GPUImageSharpenFilter()); // sharp
mImageView.setFilter(new GPUImageSobelEdgeDetection()); // edge
原圖
\
sepia後:

\
gray後:

\

sharp後:
\
edge後:

\

(2) 處理Assets中的文件<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjxicj4KPGJyPgpKYXZhtPrC6zxicj4KPHByZSBjbGFzcz0="brush:java;">// 讀取圖像 AssetManager as = getAssets(); InputStream is = null; Bitmap bitmap = null; try {     is = as.open("dog.jpg");     bitmap = BitmapFactory.decodeStream(is);     is.close(); } catch (IOException e) {     Log.e("MainActivity", "Error"); }   // 使用GPUImage處理圖像 GPUImage gpuImage = new GPUImage(this); gpuImage.setImage(bitmap); gpuImage.setFilter(new GPUImageToonFilter()); bitmap = gpuImage.getBitmapWithFilterApplied();   // 在ImageView中顯示處理後的圖像 ImageView view = new ImageView(this); view.setImageBitmap(bitmap); setContentView(view);
(3)使用Photoshop的acv文件
Java代碼
// 讀取圖像
AssetManager as = getAssets();
InputStream is = null;
Bitmap bitmap = null;
try {
    is = as.open("dog.jpg");
    bitmap = BitmapFactory.decodeStream(is);
    is.close();
} catch (IOException e) {
    Log.e("MainActivity", "Error");
}

// 讀取Photoshop的acv文件
GPUImageToneCurveFilter filter = new GPUImageToneCurveFilter();
try {
    is = as.open("tone_curve.acv");
    filter.setFromCurveFileInputStream(is);
    is.close();
} catch (IOException e) {
    Log.e("MainActivity", "Error");
}

// 使用GPUImage處理圖像
GPUImage gpuImage = new GPUImage(self);
gpuImage.setImage(bitmap);
gpuImage.setFilter(filter);
bitmap = gpuImage.getBitmapWithFilterApplied();

// 在ImageView中顯示處理後的圖像
ImageView view = new ImageView(self);
view.setImageBitmap(bitmap);
setContentView(view);




  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved