【问题标题】:How to change the image format from JPEG to PNG in android?如何在android中将图像格式从JPEG更改为PNG?
【发布时间】:2012-01-18 10:19:31
【问题描述】:

我通过传递一个意图来打开默认的 android 设备摄像头。因此,当捕获图像时,默认情况下,相机会将其存储为 JPEG 格式。但我不想以有损格式存储它们。我希望图像质量很高。那么如何将其存储为 PNG 格式呢?...

这是我打开相机的代码:

Date dt = new Date();     
        int date=dt.getDate();  
        int hours = dt.getHours();     
        int minutes = dt.getMinutes();   
        int seconds = dt.getSeconds();     
        String curTime = date+"_"+hours + "_"+minutes + "_"+ seconds;  
         _path=Environment.getExternalStorageDirectory() +"/"+curTime+".jpg";  
        File file = new File( _path );  
        Uri outputFileUri = Uri.fromFile( file );  
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );  
    intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );  

 context.startActivityForResult(intent,0);  

然后处理onActivutyForResult(){....}

谢谢 斯内哈

【问题讨论】:

  • JPEG 格式并不意味着画质不好……相机拍摄的图像将是高分辨率(默认设置),通常大小为 500kB-2MB。

标签: android camera png


【解决方案1】:

我还没有遇到任何让相机将文件保存为PNG的方法。

但您可以将JPEG 图像转换为PNG 格式。

try {
       FileOutputStream out = new FileOutputStream(filename);
       bmp.compress(Bitmap.CompressFormat.PNG, 100, out); //100-best quality
       out.close();
} catch (Exception e) {
       e.printStackTrace();
}

请注意,这不会提高质量。您不能“增加”图像中的信息。这只会改变图像格式。

【讨论】:

  • android 中是否有任何图像压缩技术,以便我可以获得高质量的图像并将其存储在我的 sdcard 中并将其发送到服务器?
  • @Sneha,如果您严格需要高分辨率图像,请不要使用任何压缩...只需发送相机意图提供的文件...这是您将获得的最佳效果。跨度>
  • @st0le .. 将类型转换为 png 后大小会减小
  • @st0le 根据Android documentation,压缩质量参数会被PNG等无损格式忽略。
猜你喜欢
  • 2010-11-19
  • 2015-10-18
  • 1970-01-01
  • 2015-11-27
  • 1970-01-01
  • 2014-01-11
  • 2017-11-14
  • 2019-10-28
  • 1970-01-01
相关资源
最近更新 更多