0

java.sql.BlobMySql データベースの画像に type を使用しています。データベースにオブジェクトを挿入しようとすると、例外「Java.lang.NullPointerException」が発生します

@Override
protected Object doInBackground(Object...arg0) {

    try {
        Bitmap photo = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
        Users user = new Users();
        user.setName("haris");

        try {
            Blob blo = null;
            blo.setBytes(1, getBytes(photo));

        } catch (Exception e) {
            System.out.println("Error:" + e.toString());
        }


        if (UserService.register(user)) {
            System.out.println("Successful registrationl");
        } else {
            System.out.println("API call wasn't successful");
        }


    } catch (Exception e) {
        System.out.println("Error:" + e.toString());
    }

    return null;
}

 public static byte[] getBytes(Bitmap bitmap) {
     ByteArrayOutputStream stream = new ByteArrayOutputStream();
     bitmap.compress(CompressFormat.PNG, 0, stream);
     return stream.toByteArray();
 }
4

2 に答える 2

1

このコードを使用して、ビットマップをブロブに保存しています(ドローアブルから変換):

db = this.getWDB();
    ContentValues values = new ContentValues();

         Drawable d = model.getAppIcon();
    BitmapDrawable bitDw = ((BitmapDrawable) d);
    Bitmap bitmap = bitDw.getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] imageInByte = stream.toByteArray();

    values.put(COLUMN_ICON_BLOB, imageInByte); 

    db.insert(TABLE_APPS, null, values);
    db.close();

データベースから取得するには、このメソッドが使用されます

    public static Drawable convertByteArrayToDrawable( byte[] byteArrayToBeCOnvertedIntoBitMap) {

    Bitmap bitMapImage = BitmapFactory.decodeByteArray(
            byteArrayToBeCOnvertedIntoBitMap, 0,
            byteArrayToBeCOnvertedIntoBitMap.length);

    return new  BitmapDrawable(bitMapImage);
}
于 2013-01-30T15:33:21.577 に答える