Android相当于UIImageJPEGRepresentation?

Sha*_*ane 5 android

我在移植到Android的iOS应用程序中有一个照片上传图像小部件.数据以multipart/form-data格式作为HTTP POST发送.我需要在Android中复制这个但是遇到了一些问题.

现有的iOS代码段:

if ([[dictionary objectForKey:key] isKindOfClass:[UIImage class]]) {
                        NSData *imageJPEG = UIImageJPEGRepresentation([dictionary objectForKey:key], 1);
                        NSString *filename = [NSString stringWithFormat:@"%@.jpg", key];
                        [(ASIFormDataRequest *)request setData:imageJPEG withFileName:filename andContentType:@"image/jpeg" forKey:key];
                    }
Run Code Online (Sandbox Code Playgroud)

在Android上我正在尝试:

Bitmap fullImage = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
fullImage.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
Run Code Online (Sandbox Code Playgroud)

结果字符串对于两个平台上的相同图像是不同的,但结果是Android图像在上载后不在服务器端呈现.

什么是UIImageJPEGRepresentation的Android/Java相当于将图像转换为包含jpeg编码图像的字节数组?

Dav*_*rry 3

确保将 Content-Encoding HTTP 标头设置为 base64,以便服务器知道将 Base 64 正确解码回有效的 jpg。