2016-04-28 21 views
0

現在、ギャラリーからビットマップ形式で画像を読み取り中です。私はバイトに変換する必要がありますが、イメージアダプタクラスで私はビットマップに変換する必要があるデータベースに保存するとき。ビットマップをバイトに変換するか、またはその逆に変換する

次のコードである: - コードimageAdapterクラスで

public void submitAction(View view) 
    { 
     /*This method creates a new post and populates it with the data added by the user. The data is then stored in the database 
     * using the Active Android Library.*/ 
     Post p = new Post(); 
     EditText title = (EditText) findViewById(R.id.post_title_input); 
     String tit = title.getText().toString(); 
     EditText description = (EditText)findViewById((R.id.editText)); 
     String desc = description.getText().toString(); 
     Bitmap img = yourSelectedImage; 
     p.title=tit; 
     p.description=desc; 
     p.section="science"; 
     int bytes = img.getByteCount(); 
     ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer 
     img.copyPixelsToBuffer(buffer); 
     byte[] array = buffer.array(); 

    } 

データベースに格納するためにバイトに変換 - 走ったとき

public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { 
      // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     /*Converting image to byte*/ 
     Post p = posts.get(position); 
     byte[] image = p.image; 
     ByteArrayInputStream imageStream = new ByteArrayInputStream(image); 
     Bitmap theImage = BitmapFactory.decodeStream(imageStream); 
     imageView.setImageBitmap(theImage); 
     return imageView; 
    } 

をビットマップに[]バイトを変換しますアプリケーションでは、行Bitmap theImage = BitmapFactory.decodeStream(imageStream);でクラッシュし、NULLポインタ例外で終了します。 []

Bitmap bitmap = ...; 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
byte[] byteArray = stream.toByteArray(); 

バイト[]ビットマップに

答えて

1

ビットマップは、バイトを

Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray , 0, byteArray.length); 
関連する問題