微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android PhotoEditor在Intent中发送位图

如何解决Android PhotoEditor在Intent中发送位图

早上好,我正在使用这个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,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");
                 }
             });

因此,库需要一个文件来保存它,如果成功,则返回路径文件以及创建位图对象所需的路径文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。