如何在Android中将Image转换为byte []

时间:2014-03-01 15:54:20

标签: java android android-sqlite

我想在sqlite中保存图片。在这个方法中,我有图像路径到字符串。 我的问题是如何将其转换为byte []格式。

if (resultCode == RESULT_OK) {
// we need to update the gallery by starting MediaSanner service.
mScanner = new MediaScannerConnection(ImagePreviewActivity.this,new MediaScannerConnection.MediaScannerConnectionClient() {

                        public void onMediaScannerConnected() {
                                mScanner.scanFile(imageUri.getPath(), null );
                        }           

                        public void onScanCompleted(String path, Uri uri) {
                            mScanner.disconnect();
                            if (path.equals(imageUri.getPath())) {
                                 photoPath=imageUri.getPath();
                                        ImagePreviewActivity.this.runOnUiThread(new Runnable() {
                                        public void run() {
                                            capture_photo = (ImageView) findViewById(R.id.caturePhoto);
                                            Bitmap myBitmap = BitmapFactory.decodeFile(photoPath);
                                            capture_photo.setImageBitmap(myBitmap);

                                    }
                                });
                                mScanner.disconnect();
                            }
                        }
                    });
                    mScanner.connect();

3 个答案:

答案 0 :(得分:4)

首先将ImagePath转换为位图

       Bitmap src=BitmapFactory.decodeFile(imagePath);

使用以下代码将位图转换为字节数组:

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        src.compress(Bitmap.CompressFormat.PNG, 100, baos);
        data = baos.toByteArray();

在您的评论中提问

要将字节数组显示到imageview,请使用以下代码行:

   Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);

    imageView.setImageBitmap(bitmap);

要将imagePath显示到imageView,您可以使用

                 Bitmap src=BitmapFactory.decodeFile(imagePath);
                 imageView.setImageBitmap(bitmap);

答案 1 :(得分:0)

像这样:

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

答案 2 :(得分:0)

此函数将图像转换为数组byte []:

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