[英]Image saved in sdcard shows only black screen using GPUImageView in android
我正在開發一個項目,用於對圖像應用一些效果,這些效果將從圖庫中選擇或通過相機捕獲。
我已經使用GPUImageView庫對圖像應用不同的效果,並且還實現了搜索欄以增加和減少效果。 一切都很好。
問題是現在我想將效果應用圖像保存到SD卡中。 我已經為它編寫了代碼並且它的工作成功但是保存的圖像仍然是黑色的。 每當我檢查SD卡中的圖像時,除了黑屏外,它不會顯示修改后的圖像。
我不知道它為什么顯示黑色圖像。
這是我將GPUImageView
作為drawingcachedenabled設為true並將其保存為圖像的代碼。
mGPUImageView.setDrawingCacheEnabled(true);
Bitmap bitmap = mGPUImageView.getDrawingCache();
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath();
File fil = new File(path + "/MyPics");
fil.mkdir();
Random rand = new Random();
int aa = rand.nextInt();
String filename = "Photo" + aa+".jpg";
File newImg = new File(fil, filename);
try {
FileOutputStream out = new FileOutputStream(newImg);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
} catch (Exception e) {
}
Toast.makeText(this,"File Saved at Path---->" + newImg.getAbsolutePath(),
Toast.LENGTH_LONG).show();
mGPUImageView.setDrawingCacheEnabled(false);
請幫我解決這個問題。
您可以為GPUImage
創建對象並應用您的過濾器..
final GPUImage mGpuImage = new GPUImage(getApplicationContext());
mGpuImage.setFilter(new GPUImageSharpenFilter());//Your filter here
Bitmap effectsBItamap=mGpuImage.getBitmapWithFilterApplied(your bitmap);
我已經使用解決了我的問題saveToPictures()
的方法GPUImageView.java
。 我只是將File newImg
轉換為Uri
並將其傳遞給OnPictureSavedListener
類的onPictureSaved
方法的Listener,如下所示:
mGPUImageView.setDrawingCacheEnabled(true);
File fil = new File(path);
fil.mkdir();
Random rand = new Random();
int aa = rand.nextInt();
mGPUImageView.setDrawingCacheEnabled(false);
mGPUImageView.saveToPictures("MyPics", "Photo"+aa+".jpg", picSaveListener);
picSaveListener.onPictureSaved(Uri.fromFile(newImg));
OnPictureSavedListener picSaveListener = new OnPictureSavedListener() {
@Override
public void onPictureSaved(Uri uri) {
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.