将PNG图像转换为Base64

时间:2014-04-28 14:01:53

标签: android bitmap base64

我将drawable资源png图像转换为位图,然后将该位图转换为base64并通过Web服务将其发送到服务器。

图像存储在某个地址的服务器上,作为响应,我将获得存储图像的URL。

问题是在将图像发送到服务器之后我正在使用该网址获取的网址我将图像设置为其他图像视图,但图像的transperent部分变为黑色, 我认为问题在于将png图像转换为base64,

我的代码:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

bitmap = Bitmap.createScaledBitmap(bitmap, 300, 300, false);
mImageView.setImageBitmap(bitmap);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, bao);
byte[] ba = bao.toByteArray();
base64Image = Base64.encodeToString(ba, Base64.DEFAULT);

请尽快给我解决方案

1 个答案:

答案 0 :(得分:0)

你正在做的一切似乎都是对的。根据您正在编译的Android版本,decodeResource可以有不同的默认行为。使用以下代码解码时,可以强制BitmapFactory使用Alpha通道。

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = false;
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher, options);