diff options
Diffstat (limited to 'Source/WebKit2/Shared/API/c/cg')
-rw-r--r-- | Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp | 12 | ||||
-rw-r--r-- | Source/WebKit2/Shared/API/c/cg/WKImageCG.h | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp b/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp index 61b5f17..7af747e 100644 --- a/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp +++ b/Source/WebKit2/Shared/API/c/cg/WKImageCG.cpp @@ -36,6 +36,14 @@ using namespace WebCore; CGImageRef WKImageCreateCGImage(WKImageRef imageRef) { - OwnPtr<GraphicsContext> sourceContext = toImpl(imageRef)->bitmap()->createGraphicsContext(); - return CGBitmapContextCreateImage(sourceContext->platformContext()); + return toImpl(imageRef)->bitmap()->makeCGImageCopy().leakRef(); +} + +WKImageRef WKImageCreateFromCGImage(CGImageRef imageRef, WKImageOptions options) +{ + IntSize imageSize(CGImageGetWidth(imageRef), CGImageGetHeight(imageRef)); + RefPtr<WebImage> webImage = WebImage::create(imageSize, toImageOptions(options)); + OwnPtr<GraphicsContext> graphicsContext = webImage->bitmap()->createGraphicsContext(); + CGContextDrawImage(graphicsContext->platformContext(), CGRectMake(0, 0, imageSize.width(), imageSize.height()), imageRef); + return toAPI(webImage.release().leakRef()); } diff --git a/Source/WebKit2/Shared/API/c/cg/WKImageCG.h b/Source/WebKit2/Shared/API/c/cg/WKImageCG.h index 7705c31..800b02e 100644 --- a/Source/WebKit2/Shared/API/c/cg/WKImageCG.h +++ b/Source/WebKit2/Shared/API/c/cg/WKImageCG.h @@ -28,6 +28,7 @@ #include <CoreGraphics/CGImage.h> #include <WebKit2/WKBase.h> +#include <WebKit2/WKImage.h> #ifdef __cplusplus extern "C" { @@ -35,6 +36,8 @@ extern "C" { WK_EXPORT CGImageRef WKImageCreateCGImage(WKImageRef image); +WK_EXPORT WKImageRef WKImageCreateFromCGImage(CGImageRef imageRef, WKImageOptions options); + #ifdef __cplusplus } #endif |