当前位置: 首页 > 知识库问答 >
问题:

如何将捕获的图像或从gallary中选择的图像转换为base64?

贺栋
2023-03-14

用户可以从图库中捕获或选择图像。我想把那个图像上传到服务器上。

这是我的相机密码-

camera.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    //String encode = ImageBase64.encode(i);
                    startActivityForResult(i, CAMERA_REQUEST);
                }
            });

这是我从图库中选择图像的代码-

gallary.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent g = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                startActivityForResult(g, GALLARY_REQUEST);
            }
        });

另外,我用下面的代码显示图像-

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK) {
            if(requestCode == CAMERA_REQUEST) {
                Bitmap bitmap = (Bitmap) data.getExtras().get("data");
                uploaded_img.setImageBitmap(bitmap);
            }
        }
        if(requestCode == GALLARY_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
            Uri uri = data.getData();
            uploaded_img.setImageURI(uri);
        }
    }

现在,我想把这个图像转换成base64并上传到服务器。

共有1个答案

颛孙镜
2023-03-14

给你:

public static String convertToBase64(String path) {
        Bitmap bm = BitmapFactory.decodeFile(path);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
        byte[] byteArrayImage = baos.toByteArray();
        String encodedImage = android.util.Base64.encodeToString(byteArrayImage, android.util.Base64.DEFAULT);
        return encodedImage;
    }


    public static Bitmap decodeFromBase64ToBitmap(String encodedImage) {

        byte[] decodedString = android.util.Base64.decode(encodedImage, android.util.Base64.DEFAULT);
        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        return decodedByte;
    }

我在我的项目中使它静态化,所以我不需要创建类实例。

 类似资料:
  • 问题内容: 我正在尝试使用以下代码将Icon()转换为Image(): 问题是,函数在上抛出。 对于记录,该值为默认图标(通过获取) 以下是引发异常的详细信息: 如果您需要更多详细信息,请告诉我,我将编辑我的信息以添加它们。 谢谢! 问题答案: 刚刚找到了一个代码段,如果您想更频繁地包装那些表现不佳的LAF提供的图标,可能会有所帮助: 要在您的代码段中使用,只需传递任意组件:

  • 问题内容: 如何将图像的白色背景转换为透明背景?谁能给我打电话怎么做? 问题答案: Google的第一个结果是: 使颜色透明 http://www.rgagnon.com/javadetails/java-0265.html 它使图像的蓝色部分透明,但是我敢肯定您可以对其进行调整以使用白色 (提示:传递给函数,而不是)

  • 问题内容: 我这里有点问题。 我有一个applet,用户可以在其中“绘制”它。为此,我使用java.awt.Graphics2D。但是,如何将用户绘图图像保存为JPEG图像,或者至少将其转换为BufferedImage或其他内容?我不知道该怎么做。 谢谢。 问题答案: 我这样做,并且效果很好: 就这些了:)谢谢大家:)

  • 问题内容: 我想将UIView转换为图像并将其保存在我的应用程序中。有人可以告诉我如何拍摄视图的屏幕截图或将其转换为图像,以及将其保存在应用程序(而不是相机胶卷)中的最佳方法是什么?这是该视图的代码: 问题答案: 例如,如果我有一个尺寸视图:100 100时50 50。我可以使用以下屏幕截图:

  • 问题内容: 我试图用来读取RGB图像并将其转换为灰度。 在matlab中,我使用以下代码: 在matplotlib教程中,他们没有介绍。他们只是读了图像 然后将它们切成薄片,但这与根据我的理解将RGB转换为灰度不是同一回事。 我发现很难相信numpy或matplotlib没有将rgb转换为灰色的内置函数。这不是图像处理中的常见操作吗? 我写了一个非常简单的函数,可以在5分钟内使用导入的图像。这是非