我在Android上工作。我需要保存一个没有质量损失的位图。
我使用位图的compress()
方法进行了尝试,将质量设置为100。这对我不起作用,位图失去了太多的质量。我已经测试了JPEG和PNG格式。
我已经测试过将位图复制到字节缓冲区
,然后提取字节[]
,并使用文件输出流
保存它。在这种情况下,我无法显示用这种方式保存的图像,我只看到一个空白页。
我的问题是,有没有办法在不压缩的情况下将位图保存在SD卡中?
编辑:这里我的代码的一部分
public class MainActivity extends ActionBarActivity {
[...]
@Override
protected void onActivityResult(int reqCode, int resCode, Intent handler){
super.onActivityResult(reqCode, resCode, handler);
if(reqCode == CAPTURE_IDENTIFIER && resCode == Activity.RESULT_OK){
// THis is that I have tested.
// Object o = handler.getData();
// Object o2 = handler.getExtras().getParcelable("data");
// Object o3 = handler.getExtras().get("data");
// Object o4 = handler.getParcelableExtra("data");
//
prepareCapture();
startActivityForResult(cameraHandler, CAPTURE_IDENTIFIER);
}
}
private void initCamera(){
cameraHandler = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraHandler.putExtra("return-data", true);
}
private void prepareCapture(){
currentPhotoName = getNextImageIdentifier() + IMG_BASE_NAME;
File image = new File(capturesFolder, currentPhotoName);
Uri uriImage = Uri.fromFile(image);
cameraHandler.putExtra(MediaStore.EXTRA_OUTPUT, uriImage);
}
}
我检测到的异常是:RuntimeException:failure传递结果ResultInfo[…]空指针异常
编辑2:我实际上必须做的是:
我必须用相机拍一张照片,然后在保存它之前,我必须对它进行处理。之后,我必须将其保存在SD卡中。但是图像质量非常重要,我不能用低质量保存它,或者至少不能用太低的质量保存它。
如果您正在使用IMAGE_CAPTURE,则必须设置一个标志,以不返回缩略图。
没有看到你的代码,我只能猜测。
文档:
图像捕获参考
文件报价:
如果额外_输出不存在,则在额外字段中以位图对象的形式返回一个小尺寸图像
这是一个很常见的错误,请澄清是否是其他错误。
我已经阅读了谷歌文档,这是我理解的,但我不确定100%:
从android相机获得未压缩图像的唯一方法是将其保存在SD卡中。然后,如果你想使用它,从SD得到它。
事实上,由于意图只能“传输”尺寸“小”的对象,因此不可能通过使用意图在活动之间传递未压缩的图像。
在使用相机意图拍摄照片后,我压缩位图以降低文件大小。问题是压缩后,它会丢失所有EXIF数据。检索原始EXIF数据没有问题,但是,如何将压缩后的EXIF数据添加到字节数组中? (我的猜测是获取字节数组并创建一个位图,然后添加旧的EXIF数据,然后再次添加到字节数组,但这是一个移动应用程序,我正在拍摄大量图像,所以我不想浪费内存) 以下是我压缩位图并保存到字节数组输出流的代码:
从远程url保存位图图像的典型方法(基于研究)是: 我无法保存位图,除非它被压缩(位图总是未压缩)。远程图像大小为32KB,压缩后为110KB。我知道我必须降低压缩参数以获得更小的尺寸,但远程图像经过优化,效率更高。 有没有一种方法可以在不压缩远程图像的情况下将其保存到移动存储上? 我的问题的答案===== 首先,我为误导内容道歉;我只想保存可以是png | jpeg | gif |等格式的图像。
本文向大家介绍Android图片压缩(质量压缩和尺寸压缩),包括了Android图片压缩(质量压缩和尺寸压缩)的使用技巧和注意事项,需要的朋友参考一下 在网上调查了图片压缩的方法并实装后,大致上可以认为有两类压缩:质量压缩(不改变图片的尺寸)和尺寸压缩(相当于是像素上的压缩);质量压缩一般可用于上传大图前的处理,这样就可以节省一定的流量,毕竟现在的手机拍照都能达到3M左右了,尺寸压缩一般可用于生成
Android API提供了保存位图对象的方法。我创建了一个示例应用程序,它将jpeg图像(一些嘈杂的相机照片)加载到位图中,然后将其压缩回同一个文件。然后,再做5次。 显然,我的位图积累了压缩伪影。让我惊讶的是,这些伪影的数量以一种奇怪的方式取决于压缩的质量。当我将质量设置为100(我认为这是最好的质量)时,工件清晰可见。当我将质量降低到90时,工件的可视性明显降低。质量设置为80会给我最好的效
77.概述 内存压缩(A.K.A Accordion)是 hbase-2.0.0 中的一项新功能。它首先在 Accordion 的 Apache HBase 博客上推出:HBase 通过内存压缩进行呼吸。引用博客: Accordion 将 LSM 主体[ Log-Structured-Merge Tree ,HBase 所基于的设计模式]重新应用于 MemStore,以便在数据仍在 RAM 中时消
问题内容: 我正在通过wifi或移动网络通过网络发送图像,以将其存储在服务器中并再次检索。我已经这样做了,但是由于相机拍摄的图像太大,这使我的应用程序变慢,只是要指出我正在打开图库并从那里拍摄照片,而不是直接从应用程序拍摄照片。我注意到,从相机和图库中获取的来自whatsapp的图像已被压缩到大约50%。100kb。 目前,我的代码获取一个文件,并将其转换为字节,然后发送。这是获取文件并将其转换为