mirror of
https://github.com/opencv/opencv.git
synced 2025-06-07 17:44:04 +08:00
Merge pull request #18855 from Rightpoint:feature/colejd/add-apple-conversions-to-framework-builds
Expose CGImage <-> Mat conversion for iOS platforms * Add apple_conversions to framework builds This exposes CGImage <-> Mat conversion. * Export Mat <-> CGImage methods on iOS targets * Add CGImage converters to iOS objc helper class * Add CF_RETURNS_RETAINED annotations to methods returning CGImageRef
This commit is contained in:
parent
11cfa64a10
commit
c4c9cdd2b1
@ -113,7 +113,7 @@ file(GLOB imgcodecs_ext_hdrs
|
|||||||
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/legacy/*.h"
|
"${CMAKE_CURRENT_LIST_DIR}/include/opencv2/${name}/legacy/*.h"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE OR APPLE_FRAMEWORK)
|
||||||
list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/apple_conversions.h)
|
list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/apple_conversions.h)
|
||||||
list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/apple_conversions.mm)
|
list(APPEND imgcodecs_srcs ${CMAKE_CURRENT_LIST_DIR}/src/apple_conversions.mm)
|
||||||
endif()
|
endif()
|
||||||
|
@ -50,6 +50,8 @@
|
|||||||
//! @addtogroup imgcodecs_ios
|
//! @addtogroup imgcodecs_ios
|
||||||
//! @{
|
//! @{
|
||||||
|
|
||||||
|
CV_EXPORTS CGImageRef MatToCGImage(const cv::Mat& image) CF_RETURNS_RETAINED;
|
||||||
|
CV_EXPORTS void CGImageToMat(const CGImageRef image, cv::Mat& m, bool alphaExist = false);
|
||||||
CV_EXPORTS UIImage* MatToUIImage(const cv::Mat& image);
|
CV_EXPORTS UIImage* MatToUIImage(const cv::Mat& image);
|
||||||
CV_EXPORTS void UIImageToMat(const UIImage* image,
|
CV_EXPORTS void UIImageToMat(const UIImage* image,
|
||||||
cv::Mat& m, bool alphaExist = false);
|
cv::Mat& m, bool alphaExist = false);
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
//! @addtogroup imgcodecs_macosx
|
//! @addtogroup imgcodecs_macosx
|
||||||
//! @{
|
//! @{
|
||||||
|
|
||||||
CV_EXPORTS CGImageRef MatToCGImage(const cv::Mat& image);
|
CV_EXPORTS CGImageRef MatToCGImage(const cv::Mat& image) CF_RETURNS_RETAINED;
|
||||||
CV_EXPORTS void CGImageToMat(const CGImageRef image, cv::Mat& m, bool alphaExist = false);
|
CV_EXPORTS void CGImageToMat(const CGImageRef image, cv::Mat& m, bool alphaExist = false);
|
||||||
CV_EXPORTS NSImage* MatToNSImage(const cv::Mat& image);
|
CV_EXPORTS NSImage* MatToNSImage(const cv::Mat& image);
|
||||||
CV_EXPORTS void NSImageToMat(const NSImage* image, cv::Mat& m, bool alphaExist = false);
|
CV_EXPORTS void NSImageToMat(const NSImage* image, cv::Mat& m, bool alphaExist = false);
|
||||||
|
@ -20,6 +20,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
|
|
||||||
CV_EXPORTS @interface Mat (Converters)
|
CV_EXPORTS @interface Mat (Converters)
|
||||||
|
|
||||||
|
-(CGImageRef)toCGImage CF_RETURNS_RETAINED;
|
||||||
|
-(instancetype)initWithCGImage:(CGImageRef)image;
|
||||||
|
-(instancetype)initWithCGImage:(CGImageRef)image alphaExist:(BOOL)alphaExist;
|
||||||
-(UIImage*)toUIImage;
|
-(UIImage*)toUIImage;
|
||||||
-(instancetype)initWithUIImage:(UIImage*)image;
|
-(instancetype)initWithUIImage:(UIImage*)image;
|
||||||
-(instancetype)initWithUIImage:(UIImage*)image alphaExist:(BOOL)alphaExist;
|
-(instancetype)initWithUIImage:(UIImage*)image alphaExist:(BOOL)alphaExist;
|
||||||
|
@ -9,6 +9,22 @@
|
|||||||
|
|
||||||
@implementation Mat (Converters)
|
@implementation Mat (Converters)
|
||||||
|
|
||||||
|
-(CGImageRef)toCGImage {
|
||||||
|
return MatToCGImage(self.nativeRef);
|
||||||
|
}
|
||||||
|
|
||||||
|
-(instancetype)initWithCGImage:(CGImageRef)image {
|
||||||
|
return [self initWithCGImage:image alphaExist:NO];
|
||||||
|
}
|
||||||
|
|
||||||
|
-(instancetype)initWithCGImage:(CGImageRef)image alphaExist:(BOOL)alphaExist {
|
||||||
|
self = [self init];
|
||||||
|
if (self) {
|
||||||
|
CGImageToMat(image, self.nativeRef, (bool)alphaExist);
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
-(UIImage*)toUIImage {
|
-(UIImage*)toUIImage {
|
||||||
return MatToUIImage(self.nativeRef);
|
return MatToUIImage(self.nativeRef);
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||||||
|
|
||||||
CV_EXPORTS @interface Mat (Converters)
|
CV_EXPORTS @interface Mat (Converters)
|
||||||
|
|
||||||
-(CGImageRef)toCGImage;
|
-(CGImageRef)toCGImage CF_RETURNS_RETAINED;
|
||||||
-(instancetype)initWithCGImage:(CGImageRef)image;
|
-(instancetype)initWithCGImage:(CGImageRef)image;
|
||||||
-(instancetype)initWithCGImage:(CGImageRef)image alphaExist:(BOOL)alphaExist;
|
-(instancetype)initWithCGImage:(CGImageRef)image alphaExist:(BOOL)alphaExist;
|
||||||
-(NSImage*)toNSImage;
|
-(NSImage*)toNSImage;
|
||||||
|
@ -7,5 +7,5 @@
|
|||||||
#import <ImageIO/ImageIO.h>
|
#import <ImageIO/ImageIO.h>
|
||||||
#include "opencv2/core.hpp"
|
#include "opencv2/core.hpp"
|
||||||
|
|
||||||
CV_EXPORTS CGImageRef MatToCGImage(const cv::Mat& image);
|
CV_EXPORTS CGImageRef MatToCGImage(const cv::Mat& image) CF_RETURNS_RETAINED;
|
||||||
CV_EXPORTS void CGImageToMat(const CGImageRef image, cv::Mat& m, bool alphaExist);
|
CV_EXPORTS void CGImageToMat(const CGImageRef image, cv::Mat& m, bool alphaExist);
|
||||||
|
Loading…
Reference in New Issue
Block a user