【发布时间】:2016-06-27 14:38:25
【问题描述】:
如何从字节数组构造原始大小的位图?
byte[] imageAsBytes = Base64.decode(b64.getBytes(), Base64.DEFAULT);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inSampleSize = 1;
return BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length, options);
问题是创建的位图比原始位图小几倍(cca 3 倍)...
【问题讨论】:
-
这对我来说看起来非常正确,假设 byte[] 具有正确的格式。由于您没有写任何关于问题所在的内容,因此您的问题没有答案。
-
我正在使用 BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inDensity = DisplayMetrics.DENSITY_DEFAULT; opt.inTargetDensity = DisplayMetrics.DENSITY_DEFAULT; opt.inScaled = 假;即使您使用的选项应该有效。尝试一下。如果它没有帮助,那么您的输入数据不正确(如原始位图大小)。
-
很奇怪(至少对我而言),但这是关键:options.inDensity = DisplayMetrics.DENSITY_DEFAULT;谢谢@EmanuelMoecklin 你会发布答案以便我将其标记为正确吗?
-
不客气。不要犹豫,将我的答案标记为正确;-)。
标签: java android android-bitmap bitmapfactory