使用Android的图库应用选择要在以后使用httppost上传的照片。照片上传但质量和尺寸非常低。我一直在阅读有关设置Bitmap.CompressFormat.PNG
会让它无损的问题,但它会将照片从2000x1500
转移到250x187
。
我是否有可能获得缩略图而不是实际图像?我正在使用Google提供的照片。
代码
@Override
public void onActivityResult( int requestCode, int resultCode, Intent data ) {
super.onActivityResult( requestCode, resultCode, data );
if ( resultCode == getActivity().RESULT_OK ) {
selectedImage = Uri.parse( data.getDataString() );
try {
final Bitmap v = DecodeUriImage.Decode( selectedImage, getActivity() );
ByteArrayOutputStream bao = new ByteArrayOutputStream();
v.compress( Bitmap.CompressFormat.PNG, 100, bao );
byte[] byte_arr = bao.toByteArray();
// Add image to array
images.set( selectedImageIndex, Base64.encodeToString( byte_arr, Base64.DEFAULT ) );
} catch ( FileNotFoundException e ) {
e.printStackTrace();
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
}
结果
答案 0 :(得分:1)
Bitmap.CompressFormat.PNG将压缩图像,但这取决于您在非压缩图像上使用的格式扭结。您应该使用矢量图像来获得最佳效果,因为在“压缩传输”中,immage在使图像变大时不会失去质量。
答案 1 :(得分:0)
没有理由将所选图像放在位图中供以后使用。此外,您没有在DecodeUriImage.Decode( selectedImage, getActivity() );
中显示所有情况。也许它的质量在那里改变了。而是意识到你在selectedImage
中有一个媒体路径,你可以将其转换为文件系统的真实路径。保存该路径以供以后使用。
如果您以后使用它,只需在字节数组中加载文件并编码base64。不要使用Bitmapfactory。