From d059de5487902683780db3b49d482871faba7d47 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 8 Sep 2023 18:29:31 +0530 Subject: [PATCH] Added iOS MPPFaceStylizerResult --- .../tasks/ios/vision/face_stylizer/BUILD | 28 ++++++++++ .../sources/MPPFaceStylizerResult.h | 52 +++++++++++++++++++ .../sources/MPPFaceStylizerResult.m | 30 +++++++++++ 3 files changed, 110 insertions(+) create mode 100644 mediapipe/tasks/ios/vision/face_stylizer/BUILD create mode 100644 mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.h create mode 100644 mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.m diff --git a/mediapipe/tasks/ios/vision/face_stylizer/BUILD b/mediapipe/tasks/ios/vision/face_stylizer/BUILD new file mode 100644 index 000000000..1f0a25ac4 --- /dev/null +++ b/mediapipe/tasks/ios/vision/face_stylizer/BUILD @@ -0,0 +1,28 @@ +# Copyright 2023 The MediaPipe Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +package(default_visibility = ["//mediapipe/tasks:internal"]) + +licenses(["notice"]) + +objc_library( + name = "MPPFaceStylizerResult", + srcs = ["sources/MPPFaceStylizerResult.m"], + hdrs = ["sources/MPPFaceStylizerResult.h"], + deps = [ + "//mediapipe/tasks/ios/core:MPPTaskResult", + "//mediapipe/tasks/ios/vision/core:MPPImage", + ], +) + diff --git a/mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.h b/mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.h new file mode 100644 index 000000000..d22b6e25a --- /dev/null +++ b/mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.h @@ -0,0 +1,52 @@ +// Copyright 2023 The MediaPipe Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import +#import "mediapipe/tasks/ios/core/sources/MPPTaskResult.h" +#import "mediapipe/tasks/ios/vision/core/sources/MPPImage.h" + +NS_ASSUME_NONNULL_BEGIN + +/** Represents the stylized image generated by `FaceStylizer`. */ +NS_SWIFT_NAME(FaceStylizerResult) +@interface MPPFaceStylizerResult : MPPTaskResult + +/** + * An `MPImage` representing the stylized image of the most visible face. Empty if no face is detected in the input image. + */ +@property(nonatomic, readonly, nullable) MPPImage *stylizedImage; + +/** + * Initializes a new `FaceStylizerResult` with the given stylized image. + * + * @param stylizedImage An `MPImage` representing the stylized image of the most + * visible face. Empty if no face is detected in the input image. + * @param timestampInMilliseconds The timestamp for this result. + * + * @return An instance of `FaceStylizerResult` initialized with the given stylized image and + * timestamp. + * + */ +- (instancetype)initWithImage:(nullable MPPImage *)image + timestampInMilliseconds:(NSInteger)timestampInMilliseconds; + +- (instancetype)initWithTimestampInMilliseconds:(NSInteger)timestampInMilliseconds NS_UNAVAILABLE; + +- (instancetype)init NS_UNAVAILABLE; + ++ (instancetype)new NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.m b/mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.m new file mode 100644 index 000000000..568f05f34 --- /dev/null +++ b/mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.m @@ -0,0 +1,30 @@ +// Copyright 2023 The MediaPipe Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import + +#import "mediapipe/tasks/ios/vision/face_stylizer/sources/MPPFaceStylizerResult.h" + +@implementation MPPFaceStylizerResult + +- (instancetype)initWithImage:(MPPImage *)image + timestampInMilliseconds:(NSInteger)timestampInMilliseconds { + self = [super initWithTimestampInMilliseconds:timestampInMilliseconds]; + if (self) { + _stylizedImage = image; + } + return self; +} + +@end