diff options
author | Roman Blum <rmnblm@gmail.com> | 2016-12-06 02:16:13 +0100 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2016-12-05 17:16:13 -0800 |
commit | 1045934d5e62eaf85bc280ce2d75e7558f5a5104 (patch) | |
tree | cf299675768bb6ba1996d3a312823b60737bc109 /platform/ios/src | |
parent | 5579e67804369777819babba5cf6e25eb91ee77e (diff) | |
download | qtlocation-mapboxgl-1045934d5e62eaf85bc280ce2d75e7558f5a5104.tar.gz |
[core, ios, macos] Add image accessor to MGLStyle (#7096)
* [core] Add interface to get image from sprite atlas
* [tests] Add tests for Map::getImage
* [ios, macos] WIP: get MGLImage for name from style
* [ios, macos] Fixed -imageForName:
Convert from sprite images to platform images using the existing encodePNG() function, which is also used for printing. Allow -imageForName: to return nil without an assertion failure. Added a basic test.
Diffstat (limited to 'platform/ios/src')
-rw-r--r-- | platform/ios/src/UIImage+MGLAdditions.h | 6 | ||||
-rw-r--r-- | platform/ios/src/UIImage+MGLAdditions.mm | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/platform/ios/src/UIImage+MGLAdditions.h b/platform/ios/src/UIImage+MGLAdditions.h index 411220c503..f291a302c9 100644 --- a/platform/ios/src/UIImage+MGLAdditions.h +++ b/platform/ios/src/UIImage+MGLAdditions.h @@ -2,8 +2,14 @@ #include <mbgl/sprite/sprite_image.hpp> +NS_ASSUME_NONNULL_BEGIN + @interface UIImage (MGLAdditions) +- (nullable instancetype)initWithMGLSpriteImage:(const mbgl::SpriteImage *)spriteImage; + - (std::unique_ptr<mbgl::SpriteImage>)mgl_spriteImage; @end + +NS_ASSUME_NONNULL_END diff --git a/platform/ios/src/UIImage+MGLAdditions.mm b/platform/ios/src/UIImage+MGLAdditions.mm index 8ec8f9e15f..4507fb6c41 100644 --- a/platform/ios/src/UIImage+MGLAdditions.mm +++ b/platform/ios/src/UIImage+MGLAdditions.mm @@ -2,6 +2,13 @@ @implementation UIImage (MGLAdditions) +- (nullable instancetype)initWithMGLSpriteImage:(const mbgl::SpriteImage *)spriteImage +{ + std::string png = encodePNG(spriteImage->image); + NSData *data = [[NSData alloc] initWithBytes:png.data() length:png.size()]; + return [self initWithData:data scale:spriteImage->pixelRatio]; +} + - (std::unique_ptr<mbgl::SpriteImage>)mgl_spriteImage { CGImageRef cgImage = self.CGImage; |