【问题标题】:how to convert an image into base64 string如何将图像转换为base64字符串
【发布时间】:2012-09-06 09:50:22
【问题描述】:

我想将图像转换为 base 64 编码为字符串。从那里以oma_status-icon xml 格式发送到服务器。

但是我从服务器响应中得到了不受支持的编码......

还有其他方法可以将图片转base64字符串吗??

请..帮助...

我的代码是:

        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),  R.drawable.image);

        ByteArrayOutputStream bao = new ByteArrayOutputStream();
        bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 100, bao);
        byte [] ba = bao.toByteArray();

         String ba1=Base64.encodeBytes(ba);

【问题讨论】:

  • 如果这有帮助,请接受答案,以便其他人可能会有所帮助。

标签: android xml encoding base64 encode


【解决方案1】:

请使用此代码..

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),  R.drawable.image);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte [] ba = bao.toByteArray();
String ba1=Base64.encodeToString(ba,Base64.DEFAULT);

请导入

import android.util.Base64;

【讨论】:

  • Base64.DEFAULT :- 传递 DEFAULT 会导致输出符合 RFC 2045。
  • String ba1=Base64.encodeToString(ba,Base64.DEFAULT);在那我收到base64.DEFAULT错误.....怎么办??
  • base64.DEFAULT not samll base64 used Base64.DEFAULT
  • 当我通过 http put reqest 以 oma_status-icon 的 xml 格式发送此字符串时,我得到了不受支持的编码.....
  • 我想可能是在服务器端检查。我给出的代码 100% 在我的应用程序中工作。
【解决方案2】:
// convert from bitmap to byte array
public byte[] getBytesFromBitmap(Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.JPEG, 70, stream);
    return stream.toByteArray();
}

// get the base 64 string
String imgString = Base64.encodeToString(getBytesFromBitmap(someImg), 
                       Base64.NO_WRAP);

【讨论】:

    【解决方案3】:

    试试下面的代码

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte b [] = baos.toByteArray();
    String base64String = Base64.encodeToString(b, Base64.DEFAULT);
    

    别忘了import android.util.Base64;

    【讨论】:

      【解决方案4】:

      也许你可以试试

      String base64Result = Base64.encodeToString(yourByteArray[], Base64.DEFAULT);

      【讨论】:

        【解决方案5】:

        方法:

        private String bitmapToBase64(Bitmap bitmap) {
        
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
            byte[] byteArray = byteArrayOutputStream .toByteArray();
        
            return Base64.encodeToString(byteArray, Base64.DEFAULT);
        }
        

        进口:

        import android.util.Base64;
        import java.io.ByteArrayOutputStream;
        

        【讨论】:

          猜你喜欢
          • 2011-06-17
          • 2018-09-07
          • 2014-07-21
          • 2020-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-19
          相关资源
          最近更新 更多