我想在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();
答案 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();
}