Android MediaStore.Images.Media会降低存储到gallery的图像的质量
我正在通过将应用程序的屏幕截图保存到Gallery-Android MediaStore.Images.Media会降低存储到gallery的图像的质量,android,jpeg,mediastore,Android,Jpeg,Mediastore,我正在通过将应用程序的屏幕截图保存到Gallery- //screenshot private void screenshot() { Uri photo = lomography(); String photopath = photo.getPath(); try { MediaStore.Images.Media.insertImage(getContentResolver(), photopath, "name" , "desc"); } c
//screenshot
private void screenshot()
{
Uri photo = lomography();
String photopath = photo.getPath();
try {
MediaStore.Images.Media.insertImage(getContentResolver(), photopath, "name" , "desc");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
存储在光路上的图像质量高:
但当我导航到Gallery并打开同一张照片时,这是一个低JPEG版本,有几个压缩瑕疵:
当原始文件是PNG时,为什么画廊图像是JPEG版本?
如何将高分辨率版本保存到库中
我发现诀窍在于“用ContentResolver::insert注册图像”
但我使用的是getContentResolver 这就是答案。
我的意思是“这是代码中缺少的部分
而不是“MediaStore.Images.Media.insertImage(getContentResolver()”。
我应该使用MediaStore.Images.Media.insertImage(this.getContentResolver()
问题已解决。若要解决此问题,请打开“MediaStore.Images.Media.insertImage”的delcaration方法,将所需的代码复制并粘贴到您自己的类中,然后在其中以50%的速度压缩图像,将其更改为100%。两者都是相同的,默认情况下,调用
此实例。@xmenW.K。图像质量明显较低,就像vga相机一样。但标记的答案不是解决方案,您调用的是相同的方法,不是吗无论是否使用这个。@xmenW.K.添加“this”令人惊讶地解决了这个问题。我猜它与上下文有关。没有这个,它创建了一个缩略图质量的屏幕截图。MediaStore.InsertImageSource显示图像确实被大幅压缩:--50%质量!