|
|
|
@ -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());
|
|
|
|
|
}
|
|
|
|
|