早上好,我正在使用这个Github库:https://github.com/burhanrashid52/PhotoEditor作为照片编辑器。我有一个GalleryFragment,用户在其中从他的图库中选择图像,然后我将图像正确地传递到EditImageActivity,用户可以在其中应用贴纸、过滤器、ecc。然后点击按钮,用户可以将编辑后的图像传递到InfoActivity,在那里他可以添加其他信息并发布图像。
问题是,当用户编辑图像并将其传递给InfoActivity时,会显示原始图像而不做更改,而且当用户发布图像时,保存的图像是原始图像,而不是修改后的图像。
我正在尝试使用位图来做到这一点:
这是EditImageActivity的代码,我试图将编辑后的图像发送到InfoActivity:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bmp =((BitmapDrawable)mPhotoEditorView.getSource().getDrawable()).getBitmap();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent intent = new Intent(EditImageActivity.this, InfoActivity.class);
intent.putExtra("imm", byteArray);
startActivity(intent);
这是InfoActivity的一段代码,我试图从EditImageActivity中检索编辑后的图像的意图,并将其显示在ImageView:中
byte[] byteArray = getIntent().getByteArrayExtra("imm");
assert byteArray != null;
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
immagine.setImageBitmap(bmp);
所以,当用户不编辑图像时,它是有效的,而当他编辑图像时它会显示原始图像。
我认为问题出在这段代码中(我在EditImageActivity中使用的代码来获得编辑后的图像的位图(,因为它传递的是原始图像,而不是修改后的图像:
Bitmap bmp =((BitmapDrawable)mPhotoEditorView.getSource().getDrawable()).getBitmap();
有人能帮帮我吗?
是的,问题似乎出在从PhotoEditorView获取编辑后的图像时。如果您看到文档,要检索此图像,就必须实现下一种方法:
PhotoEditor.saveAsFile(filePath, new PhotoEditor.OnSaveListener() {
@Override
public void onSuccess(@NonNull String imagePath) {
Log.e("PhotoEditor","Image Saved Successfully");
}
@Override
public void onFailure(@NonNull Exception exception) {
Log.e("PhotoEditor","Failed to save Image");
}
});
因此,库需要一个文件来保存它,如果成功,则返回路径文件,以及创建位图对象所需的路径文件。