java - 在通过改造发送到服务器之前上传 Base64 格式的图像和压缩图像?

标签 java android retrofit image-compression

我已经按照互联网上的教程进行了改造,上传图像。 这是我的代码:

AcademicClient.class

@Multipart
    @POST("/")
    Call<ResponseBody> postImage(@Part MultipartBody.Part image, @Part("name")RequestBody name);

MainFeed.class

File file = new File(filePath);
RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"),file);
        MultipartBody.Part body = MultipartBody.Part.createFormData("upload",file.getName(),reqFile);
        RequestBody name = RequestBody.create(MediaType.parse("text/plain"),"upload_test");

        Log.d("xxxxxxx",body + " ---- "+ name);

        AcademicClient client = ServiceGenerator.createService(AcademicClient.class);
        Call<ResponseBody> call = client.postImage(body,name);
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

            }
        });

改造后如何将其转换为Base64并先压缩图像,然后再发送到服务器?

最佳答案

尝试下面的代码:

首先定义ByteArrayOutputStreambyte[]对象:

bytearrayoutputstream = new ByteArrayOutputStream();
byte[] BYTE;

第二个定义未压缩的位图(bitmap1),如下所示:

 bitmap1.compress(Bitmap.CompressFormat.JPEG,40,bytearrayoutputstream);

 BYTE = bytearrayoutputstream.toByteArray();

第三次将byte[]转换为Base64

 String base64 = Base64.encodeToString(BYTE, Base64.DEFAULT);
 Bitmap compressedBitmap = BitmapFactory.decodeByteArray(BYTE,0,BYTE.length);

第四,最后你得到压缩Base64转换后的图像:

现在您可以直接发送 Base64 图像,而无需使用 MultiPart

关于java - 在通过改造发送到服务器之前上传 Base64 格式的图像和压缩图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360249/

相关文章:

java - Android ListView 性能

java - 等待一秒等待按钮点击,如果按钮未点击则调用函数

android - 如何使用 Retrofit OkHttpClient 保持 session

java - 单击查看时从服务器检索数据

java - 使用 Spring Boot 在 Jpa 中查询时出错

java - 使用 Jackson 映射 Json 到 pojo 类

类中带有票证的 Java 数组列表

java - 通过 Scribe 和 Android 使用 LinkedIn 邀请

java - 我在方法上苦苦挣扎……尤其是你通过它的论点。

android - 改造 + OkHTTP - 响应缓存不工作