gpt4 book ai didi

android - 使用 camera.TakePicture 拍照时如何为 getThumbnail 查找 origID

转载 作者:行者123 更新时间:2023-11-29 00:34:07 24 4
gpt4 key购买 nike

对于getThumbnail,android文档有:

public static Bitmap getThumbnail (ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options)

我完全不知道如何在使用 Camera.TakePicture 拍照时获取 origId(要执行 getThumbnail 的原始图像的 ID)。

基于我读过的其他各种问题,我目前的尝试是:

String[] projection = { MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA };
String sort = MediaStore.Images.ImageColumns._ID + " DESC";
Log.d("getting IDs:",sort);
Cursor myCursor = managedQuery(imagesUri, projection, null, null, sort);
myCursor.moveToFirst();
thumbBitmap = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), myCursor.getLong(myCursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID)), MediaStore.Images.Thumbnails.MINI_KIND, null );

但是,我的日志输出的字符串“_ID”应该是实际 ID,然后它在我尝试创建 myCursor 的行上给了我一个空指针异常。

我还读到其他人的类似问题的答案,即 SD 卡上的图像没有 ID,在这种情况下,我猜 origID 实际上是一个 URI,而文档只是一团糟向上?我非常困惑,非常欢迎任何解释。

最佳答案

我最终无法使用 getThumbnail,因为我找不到任何有效的方法来成功使用图像位置的路径,并且(至少在当时,我相信已经提交了报告)设备没有将缩略图存储在预期位置时出现问题。

我的解决方案最终变成了我希望可以避免的,我编写了自己的小缩略图生成器,而不是使用 Android 的 getThumbnail。

public class CreateThumbnail extends Activity {
Bitmap imageBitmap;
public Bitmap notTheBestThumbnail(String file) {
byte[] imageData = null;
try
{

final int THUMBNAIL_SIZE = 95;

FileInputStream fis = new FileInputStream(file); //file is the path to the image-to-be-thumbnailed.
imageBitmap = BitmapFactory.decodeStream(fis);
imageBitmap = Bitmap.createScaledBitmap(imageBitmap, THUMBNAIL_SIZE, THUMBNAIL_SIZE, false);

ByteArrayOutputStream baos = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 10, baos); //What image format and level of compression to use.
imageData = baos.toByteArray();

}
catch(Exception ex) {
Log.e("Something did not work", "True");
}
return imageBitmap;
}
}

我使用这样的类:

CreateThumbnail thumb = new CreateThumbnail();
thumb.notTheBestThumbnail(Environment.getExternalStorageDirectory() + "/exampleDir" + "/" + exampleVar + "/example_img.jpg");
Bitmap mBitmap = thumb.imageBitmap; //Assigns the thumbnail to a bitmap variable, for manipulation.

虽然我实际上并没有弄清楚如何获取 ID,但希望这能帮助任何遇到与 getThumbnail 类似问题的人。

关于android - 使用 camera.TakePicture 拍照时如何为 getThumbnail 查找 origID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com