当前位置: 首页 > 知识库问答 >
问题:

从android camera返回的字节中保存图像意图保存为小图像

宗政楚
2023-03-14

私人意图cameraIntent=null;

public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);

cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
                                super.onActivityResult(requestCode, resultCode, data);

if (requestCode == CAMERA_PIC_REQUEST) {  
    if (resultCode == RESULT_OK) {
      if ( data != null)
        {
           Bitmap myImage = null;
           Bitmap imageBitmap = (Bitmap) data.getExtras().get("data");
           ByteArrayOutputStream stream = new ByteArrayOutputStream();
           imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100,stream);
           byte[] byteArray = stream.toByteArray();
           BitmapFactory.Options options = new BitmapFactory.Options();
           myImage = BitmapFactory.decodeByteArray(byteArray, 0,byteArray.length, options);
           fileOutputStream = new FileOutputStream(sPath);
           BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
           myImage.compress(CompressFormat.JPEG, 100, bos);
           bos.flush();
           bos.close();
        }
    }
}
}

共有1个答案

巫马承德
2023-03-14

data.getExtras(“data”)只返回缩略图。为了获得全尺寸的图像,您需要向camera intent传递一个文件,以便在其中存储该图像,并在以后检索该图像。下面是一个粗略的例子。

开始意图:

File dir = new File(Environment.getExternalStorageDirectory() + "/dcim/myappname");
File mFile = File.createTempFile("myImage", ".png", dir);

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mFile));
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

onActivityResult内部:

if (resultCode == RESULT_OK) {
   Bitmap bm = BitmapFactory.decodeFile(mFile.getAbsolutePath());
}
// do whatever you need with the Bitmap
 类似资料:
  • 我使用一个自定义的视图,在我使用画布,用户可以绘制任何东西,之后,我想保存在sd卡的图像,英国电信是不能做到这一点。不知道是怎么回事。

  • 我试图将字节保存为图像,但似乎不起作用。 以下是我尝试过的: 但我得到一个错误,说它不能写模式RGBA为JPEG,所以我猜这个方法只适用于PNG?如果是这样的话,有没有其他方法来处理jpeg图像?

  • 保存图像 能将图像保存至Memory Stick™或主机内存。 1. 让指针对准想要保存的图像,从选单列中选择[档案] > [保存图像]。 2. 选择[保存]。 提示 若想变更文件名或保存位置,请选择各项输入栏,并执行决定。

  • 问题内容: 我需要将图像从PHP URL保存到PC。假设我有一个页面,其中仅包含一个“花”图像,仅此而已。如何使用新名称(使用PHP)从URL中保存该图像? 问题答案: 如果您设置为: 其他使用cURL:

  • 问题内容: 我在使用python通过urllib2请求或urllib.urlretrieve从url保存图像时遇到问题。那是图像的URL是有效的。我可以使用资源管理器手动下载它。但是,当我使用python下载图像时,无法打开该文件。我使用Mac OS预览来查看图像。谢谢! 更新: 代码如下 我要下载的图像URL是 http://site.meishij.net/r/58/25/3568808/a3

  • 我创建了一个使用HTML5画布元素的网络应用程序,允许用户绘制各种形状、颜色、线宽。他们也可以上传一张图片,把它画在画布上,然后在上面画画,作为注释他们的图片的一种方式。 我的挑战是我正在使用。toDataURL()获取画布的全部内容,并将其保存为图像。但据我所知,这只能捕获画布的大小。在较小的设备(手机)上,保存的图像最终尺寸非常小。下面是我为获得画布上的内容所做的: var image=文档。