我正在使用GPUImage android庫在相機預覽上應用濾鏡,並在拍攝照片後使用應用的濾鏡保存圖像。問題是,當我拍攝該照片時,我無法使用濾鏡獲取圖像。 我使用下面的代碼:使用GPUImage將應用的濾鏡保存在相機預覽中
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
mGPUImage.setImage(bitmap);
bitmap = mGPUImage.getBitmapWithFilterApplied();
saveImage(bitmap);
}
在GPUImage的庫頁(https://github.com/CyberAgent/android-gpuimage/#sample-code)的代碼示例說:
隨着預覽:
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
Uri imageUri = ...;
mGPUImage = new GPUImage(this);
mGPUImage.setGLSurfaceView((GLSurfaceView) findViewById(R.id.surfaceView));
mGPUImage.setImage(imageUri); // this loads image on the current thread, should be run in a thread ?? (can't understand this line)
mGPUImage.setFilter(new GPUImageSepiaFilter());
// Later when image should be saved saved:
mGPUImage.saveToPictures("GPUImage", "ImageWithFilter.jpg", null);
}
即使他們的樣本中,我不能救帶過濾器的圖像。 請有人能解釋給我?
您可以將圖像保存,但濾波效果丟失,對不對? –
不,既不保存圖像 –
@ Luiz Henrique Alegria嘗試我的代碼,並檢查Android Menifest中的寫入權限。 –