|
@@ -164,6 +164,7 @@
|
|
[SVProgressHUD setMinimumDismissTimeInterval:1.5];
|
|
[SVProgressHUD setMinimumDismissTimeInterval:1.5];
|
|
[SVProgressHUD setMaximumDismissTimeInterval:3];
|
|
[SVProgressHUD setMaximumDismissTimeInterval:3];
|
|
[SVProgressHUD setFont:[UIFont systemFontOfSize:14]];
|
|
[SVProgressHUD setFont:[UIFont systemFontOfSize:14]];
|
|
|
|
+ self.stitchResult = -999;
|
|
self.tensorFlow = [[LenzTensorFlow alloc]initWithFileName:@"moire_mobilenetv2_79"];
|
|
self.tensorFlow = [[LenzTensorFlow alloc]initWithFileName:@"moire_mobilenetv2_79"];
|
|
if(@available(iOS 14, *)){
|
|
if(@available(iOS 14, *)){
|
|
self.videoQueue = dispatch_queue_create("com.lenzSDK.videoQueue", NULL);
|
|
self.videoQueue = dispatch_queue_create("com.lenzSDK.videoQueue", NULL);
|
|
@@ -1399,6 +1400,7 @@
|
|
[camera unlockForConfiguration];
|
|
[camera unlockForConfiguration];
|
|
[self.recordTimer invalidate];
|
|
[self.recordTimer invalidate];
|
|
self.recordTimer = nil;
|
|
self.recordTimer = nil;
|
|
|
|
+ [self.timerLabel updateWith:0];
|
|
}
|
|
}
|
|
|
|
|
|
- (BOOL)startVideoDataOutputing{
|
|
- (BOOL)startVideoDataOutputing{
|
|
@@ -3092,53 +3094,7 @@
|
|
|
|
|
|
|
|
|
|
if (result == LenVideoStitchResultSuccess) {
|
|
if (result == LenVideoStitchResultSuccess) {
|
|
- dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
-
|
|
|
|
- if (self.isStitchBigImage) {
|
|
|
|
- //保存大图拼接路径
|
|
|
|
- [[SDKParameters shared].items enumerateObjectsUsingBlock:^(SDKParametersItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
- if (obj.model == self.mode) {
|
|
|
|
- model.cameraType = obj.cameraPositionString;
|
|
|
|
- }
|
|
|
|
- }];
|
|
|
|
- model.mode = self.mode;
|
|
|
|
- if ([LenStitcher getCurrentPanoramaShow]) {
|
|
|
|
- model.image = image;
|
|
|
|
- model.previewImage = saveImage;
|
|
|
|
- NSString *path = [LenzDataManager saveImageWith:UIImageJPEGRepresentation(saveImage, .8) mode:self.mode];
|
|
|
|
- model.path = path;
|
|
|
|
- }
|
|
|
|
- [self updateViewStatusWhenStitchSave:NO];
|
|
|
|
- self.isStitchBigImage = NO;
|
|
|
|
- [self.panoramaGuideView clearImage];
|
|
|
|
- [self updateViewStatus];
|
|
|
|
- [self.panoramaGuideView showImageWith:nil];
|
|
|
|
- } else {
|
|
|
|
- if (base.isRecording) {
|
|
|
|
- __block BOOL keyFrame = NO;
|
|
|
|
- [[SDKParameters shared].items enumerateObjectsUsingBlock:^(SDKParametersItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
- if (obj.model == self.mode) {
|
|
|
|
- keyFrame = [obj.keyFrame boolValue];
|
|
|
|
- }
|
|
|
|
- }];
|
|
|
|
-
|
|
|
|
- if (needSave && keyFrame) {
|
|
|
|
- NSString *path = [LenzDataManager saveImageWith:UIImageJPEGRepresentation(saveImage, .6) mode:self.mode];
|
|
|
|
- if (path) {
|
|
|
|
- [model.keyFrame addObject:path];
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (self.panoramOrientationGuideView.selectedItemIndex != PanoramaOrientationViewAny) {
|
|
|
|
- [self.panoramaGuideView showImageWith:image];
|
|
|
|
- } else {
|
|
|
|
- self.ablumImageView.hidden = NO;
|
|
|
|
- self.ablumImageView.image = saveImage;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- self.resourceModel.lastIndex = self.mode;
|
|
|
|
- });
|
|
|
|
|
|
+ [self saveStitch:model image:image saveImage:saveImage base:base needSave:needSave];
|
|
} else {
|
|
} else {
|
|
|
|
|
|
if (!base.isRecording) {
|
|
if (!base.isRecording) {
|
|
@@ -3173,6 +3129,7 @@
|
|
}
|
|
}
|
|
|
|
|
|
self.isVideoStitchStopedWhenRecording = NO;
|
|
self.isVideoStitchStopedWhenRecording = NO;
|
|
|
|
+ self.isStitchBigImage = NO;
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
[base takePhotoButtonTouched];
|
|
[base takePhotoButtonTouched];
|
|
[self stopMotion];
|
|
[self stopMotion];
|
|
@@ -3187,10 +3144,13 @@
|
|
}];
|
|
}];
|
|
} else if(result == LenVideoStitchResultSlowMore) {
|
|
} else if(result == LenVideoStitchResultSlowMore) {
|
|
[SVProgressHUD showImage:[UIImage imageNamed:@""] status:@"目标物较少,请对准目标物低速且匀速拍摄"];
|
|
[SVProgressHUD showImage:[UIImage imageNamed:@""] status:@"目标物较少,请对准目标物低速且匀速拍摄"];
|
|
|
|
+ [self saveStitch:model image:image saveImage:saveImage base:base needSave:needSave];
|
|
} else if (result == LenVideoStitchResultSlow) {
|
|
} else if (result == LenVideoStitchResultSlow) {
|
|
[SVProgressHUD showImage:[UIImage imageNamed:@""] status:@"目标物较少,请对准目标物低速且匀速拍摄"];
|
|
[SVProgressHUD showImage:[UIImage imageNamed:@""] status:@"目标物较少,请对准目标物低速且匀速拍摄"];
|
|
|
|
+ [self saveStitch:model image:image saveImage:saveImage base:base needSave:needSave];
|
|
} else {
|
|
} else {
|
|
// [SVProgressHUD showImage:[UIImage imageNamed:@""] status:@"请勿往反方向移动"];
|
|
// [SVProgressHUD showImage:[UIImage imageNamed:@""] status:@"请勿往反方向移动"];
|
|
|
|
+ [self saveStitch:model image:image saveImage:saveImage base:base needSave:needSave];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -3199,6 +3159,58 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+- (void)saveStitch:(LenzResourceItemModel *)model image:(UIImage *)image saveImage:(UIImage *)saveImage base:(OperationNodeVideoBase *)base needSave:(LenVideoStitchNeedSave)needSave {
|
|
|
|
+ dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
+
|
|
|
|
+ if (self.isStitchBigImage) {
|
|
|
|
+ //保存大图拼接路径
|
|
|
|
+ [[SDKParameters shared].items enumerateObjectsUsingBlock:^(SDKParametersItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
+ if (obj.model == self.mode) {
|
|
|
|
+ model.cameraType = obj.cameraPositionString;
|
|
|
|
+ }
|
|
|
|
+ }];
|
|
|
|
+ model.mode = self.mode;
|
|
|
|
+ if ([LenStitcher getCurrentPanoramaShow]) {
|
|
|
|
+ model.image = image;
|
|
|
|
+ model.previewImage = saveImage;
|
|
|
|
+ NSString *path = [LenzDataManager saveImageWith:UIImageJPEGRepresentation(saveImage, .8) mode:self.mode];
|
|
|
|
+ model.path = path;
|
|
|
|
+ }
|
|
|
|
+ [self updateViewStatusWhenStitchSave:NO];
|
|
|
|
+ self.isStitchBigImage = NO;
|
|
|
|
+ [self.panoramaGuideView clearImage];
|
|
|
|
+ [self updateViewStatus];
|
|
|
|
+ [self.panoramaGuideView showImageWith:nil];
|
|
|
|
+ } else {
|
|
|
|
+ if (base.isRecording) {
|
|
|
|
+ __block BOOL keyFrame = NO;
|
|
|
|
+ [[SDKParameters shared].items enumerateObjectsUsingBlock:^(SDKParametersItem * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
|
|
|
|
+ if (obj.model == self.mode) {
|
|
|
|
+ keyFrame = [obj.keyFrame boolValue];
|
|
|
|
+ }
|
|
|
|
+ }];
|
|
|
|
+
|
|
|
|
+ if (needSave && keyFrame) {
|
|
|
|
+ NSString *path = [LenzDataManager saveImageWith:UIImageJPEGRepresentation(saveImage, .6) mode:self.mode];
|
|
|
|
+ if (path) {
|
|
|
|
+ [model.keyFrame addObject:path];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (self.panoramOrientationGuideView.selectedItemIndex != PanoramaOrientationViewAny) {
|
|
|
|
+ [self.panoramaGuideView showImageWith:image];
|
|
|
|
+ } else {
|
|
|
|
+ self.ablumImageView.hidden = NO;
|
|
|
|
+ self.ablumImageView.image = saveImage;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ self.resourceModel.lastIndex = self.mode;
|
|
|
|
+ });
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
- (void)removeLastStich {
|
|
- (void)removeLastStich {
|
|
if (self.mode == SDK_CAPTURE_MODE_PANORAMA) {
|
|
if (self.mode == SDK_CAPTURE_MODE_PANORAMA) {
|
|
if (self.resourceModel.panoramArray.count > 0) {
|
|
if (self.resourceModel.panoramArray.count > 0) {
|