删除曝光变量,从captureresult中取得曝光值

mem
liuguijing 6 months ago
parent 5321d29cb3
commit 0fdfb20fb4

@ -655,6 +655,7 @@ public class Camera2RawFragment extends Fragment {
Size largestJpeg = Collections.max(Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)), new CompareSizesByArea());
Size largestRaw = Collections.max(Arrays.asList(map.getOutputSizes(ImageFormat.RAW_SENSOR)), new CompareSizesByArea());
// Size largestRaw = Arrays.asList(map.getOutputSizes(ImageFormat.RAW_SENSOR)).get(1);
synchronized (mCameraStateLock) {
// Set up ImageReaders for JPEG and RAW outputs. Place these in a reference
@ -982,8 +983,8 @@ public class Camera2RawFragment extends Fragment {
}
// Find the best preview size for these view dimensions and configured JPEG size.
Size previewSize = chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class), rotatedViewWidth, rotatedViewHeight, maxPreviewWidth, maxPreviewHeight, largestJpeg);
// Size previewSize = new Size(3840, 2160);
// Size previewSize = chooseOptimalSize(map.getOutputSizes(SurfaceTexture.class), rotatedViewWidth, rotatedViewHeight, maxPreviewWidth, maxPreviewHeight, largestJpeg);
Size previewSize = new Size(3840, 2160);
if (swappedDimensions) {
mTextureView.setAspectRatio(previewSize.getHeight(), previewSize.getWidth());
@ -1137,7 +1138,6 @@ public class Camera2RawFragment extends Fragment {
// ImageSaverBuilder jpegBuilder = new ImageSaverBuilder(activity).setCharacteristics(mCharacteristics);
ImageSaverBuilder rawBuilder = new ImageSaverBuilder(activity).setCharacteristics(mCharacteristics);//保存拍照参数
rawBuilder.setExposetime((long) v);//保存曝光时间
rawBuilder.setList(mlist);
// mJpegResultQueue.put((int) request.getTag(), jpegBuilder);
mRawResultQueue.put((int) request.getTag(), rawBuilder);
@ -1180,7 +1180,6 @@ public class Camera2RawFragment extends Fragment {
private void dequeueAndSaveImage(TreeMap<Integer, ImageSaverBuilder> pendingQueue, RefCountedAutoCloseable<ImageReader> reader) {
synchronized (mCameraStateLock) {
reader.get();
Map.Entry<Integer, ImageSaverBuilder> entry = null;
if (pendingQueue != null) {
for (Map.Entry<Integer, ImageSaverBuilder> item : pendingQueue.entrySet()) {

@ -6,6 +6,7 @@ import static com.xypower.mppreview.HdrUtil.generateTimestamp;
import android.content.Context;
import android.graphics.ImageFormat;
import android.hardware.camera2.CameraCharacteristics;
import android.hardware.camera2.CaptureRequest;
import android.hardware.camera2.CaptureResult;
import android.hardware.camera2.DngCreator;
import android.media.Image;
@ -33,18 +34,16 @@ public class ImageSaver implements Runnable {
private final Context mContext;
private final Camera2RawFragment.RefCountedAutoCloseable<ImageReader> mReader;
private final long mExpostime;
private ArrayList<PngPhotoBean> mlist = new ArrayList<>();//用来存储已拍照的照片名称
public ImageSaver(Image image, File file, CaptureResult result, CameraCharacteristics characteristics, Context context, Camera2RawFragment.RefCountedAutoCloseable<ImageReader> reader, long mexpostime, ArrayList<PngPhotoBean> list) {
public ImageSaver(Image image, File file, CaptureResult result, CameraCharacteristics characteristics, Context context, Camera2RawFragment.RefCountedAutoCloseable<ImageReader> reader, ArrayList<PngPhotoBean> list) {
mImage = image;
mFile = file;
mCaptureResult = result;
mCharacteristics = characteristics;
mContext = context;
mReader = reader;
mExpostime = mexpostime;
mlist = list;
}
@ -91,9 +90,10 @@ public class ImageSaver implements Runnable {
}
mReader.close();
if (success) {
Long t = mCaptureResult.get(CaptureResult.SENSOR_EXPOSURE_TIME);
File directory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
String directoryPath = directory.getPath();
File file = new File(directory, "create_" + mExpostime + "_" + generateTimestamp() + ".png");
File file = new File(directory, "create_" + t + "_" + generateTimestamp() + ".png");
String path = file.getPath();
Log.e("测试测试", "开始转化:" + System.currentTimeMillis());
try {
@ -102,7 +102,7 @@ public class ImageSaver implements Runnable {
throw new RuntimeException(e);
}
PngPhotoBean bean = new PngPhotoBean();
bean.setEtime(mExpostime);
bean.setEtime(t);
bean.setPath(path);
mlist.add(bean);
Log.e("测试测试", "转化结束:" + System.currentTimeMillis());
@ -113,7 +113,6 @@ public class ImageSaver implements Runnable {
String path1 = bean1.getPath();
String path2 = bean2.getPath();
String outputPath = directoryPath + "/" + "hdr_" + generateTimestamp() + ".png";
Log.e("测试测试", "照片路径:" + path1 + " 照片路径:" + path2 + " 生成路径:" + outputPath);
boolean b = makeHdr(bean1.getEtime(), path1, bean2.getEtime(), path2, outputPath);
Log.e("测试测试", "合成结束:" + System.currentTimeMillis());
}

@ -18,7 +18,6 @@ public class ImageSaverBuilder {
public CaptureResult mCaptureResult;
public CameraCharacteristics mCharacteristics;
public Context mContext;
public long mexpostime;
public Camera2RawFragment.RefCountedAutoCloseable<ImageReader> mReader;
private ArrayList<PngPhotoBean> mlist;
@ -33,12 +32,6 @@ public class ImageSaverBuilder {
mContext = context;
}
public synchronized ImageSaverBuilder setExposetime(long time) {
mexpostime = time;
return this;
}
public synchronized ImageSaverBuilder setRefCountedReader(Camera2RawFragment.RefCountedAutoCloseable<ImageReader> reader) {
if (reader == null) throw new NullPointerException();
@ -80,7 +73,7 @@ public class ImageSaverBuilder {
if (!isComplete()) {
return null;
}
return new ImageSaver(mImage, mFile, mCaptureResult, mCharacteristics, mContext, mReader, mexpostime, mlist);
return new ImageSaver(mImage, mFile, mCaptureResult, mCharacteristics, mContext, mReader, mlist);
}
public synchronized String getSaveLocation() {

Loading…
Cancel
Save