public static void writeBitmapWithCompress(final String localFileName, Bitmap b){
int bytes = b.getByteCount();
ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer
b.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
byte[] array = buffer.array();
// byte[] encodedString = Base64.encode(array, Base64.DEFAULT);
byte[] decodedString = Base64.decode(array, Base64.DEFAULT);
// Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Timber.d(">> social localFileName"+ localFileName);
try {
FileOutputStream fileOutputStream = new FileOutputStream(localFileName);
fileOutputStream.write(decodedString);
fileOutputStream.flush();
fileOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
在这行获取异常-->byte[]decodedString=base64.decode(array,base64.default);
bad base64。是否有其他方法可以不使用任何压缩来完成这项任务?
StackTrace-->
dalvik.system.vmruntime.newnonmovablearray(原生方法)在Android.graphics.bitmapfactory.nativeDecodeStream(原生方法)在Android.graphics.bitmapfactory.decodeStream(原生方法)02-08在Android.graphics.bitmapfactory.decodeStreaminter(bitmapfactory.java:635)i/dalvikvm:
在Android.graphics.bitmapfactory.decodeStreaminal 417)
在nl.changer.socialschools.common.utils.ResizeImage(utils.java:408)
在nl.changer.socialschools.common.utils.uploadPhotos(utils.java:408)
在nl.changer.socialschools.common.utils.uploadPhotos(utils.java:321)在nl.changer.socialschools.asyncPostService.createPost 08Android.os.looper.loop(looper.java:193)02-08 11:41:36.214 Android.os.handlerThread.run(句柄rthread.java:61)
试试这个,
public void writeBitmapWithCompress(final String localFileName, Bitmap b){
byte[] image_bytes = getBytes(b);
try {
FileOutputStream out = new FileOutputStream(localFileName);
out.write(image_bytes);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
// convert bitmap to byte array
public static byte[] getBytes(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 0, stream);
return stream.toByteArray();
}
我目前正在开发一个C#web API。对于特定的调用,我需要使用对API的ajax调用发送2个图像,以便API可以将它们保存为数据库中的varbinary(max)。 null
问题内容: 无法将image.image转换为[] byte。问题点用虚线包裹。 基本上,我需要new_image为[] byte格式,以便可以将其发送到我的S3存储桶。 谢谢您的帮助。 问题答案: 您需要一个byte.Buffer,而不是bufio.Writer。bytes.Buffer在需要写入器的写入器时使用。bufio.Writer只是在将数据转发到另一个写入器之前将其缓存在内存中。
问题内容: 在这里很难说出要问什么。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 如何在Java中将字节数组转换为File? 问题答案: 一个 文件对象 不包含文件的内容。它仅是硬盘(或其他存储介质,如SSD,USB驱动器,网络共享)上文件的指针。因此,我认为您想要将其写入硬盘。 您必须使用Ja
问题内容: 我有一个表示RGB图像的整数数组,想将其转换为字节数组并将其保存到文件中。 在Java中将整数数组转换为字节数组的最佳方法是什么? 问题答案: 正如Brian所说,您需要确定需要什么样的转换。 您是否要将其保存为“正常”图像文件(jpg,png等)? 如果是这样,您可能应该使用Java Image I / O API。 如果要以“原始”格式保存,则必须指定写入字节的顺序,然后使用和NI
问题内容: 我有一个byte.Buffer,我使用binary.Write()函数包装了数据。然后,我需要将此字节数组发送到C函数。使用Go 1.6时,我未能成功解决这一问题。 它在调用C函数的行上失败: C函数: 我能够使以下内容正常工作,但将字节数组转换为字符串感觉不对。有一个更好的方法吗?这种方法是否会对数据产生副作用? 同样,这需要在Go 1.6(引入了更严格的cgo指针规则)下工作。 谢
问题内容: 我将类型为DataTable的对象保存到SQL 2005数据库中的类型为varbinary的字段中。我想找回它,但无法键入强制转换。这就是我保存它的方式。 “ dt”是DataTable对象实例。 问题答案: 您在说的是二进制序列化和反序列化。也许这会有所帮助。