1// Copyright 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SKIA_EXT_SKIA_UTILS_IOS_H_
6#define SKIA_EXT_SKIA_UTILS_IOS_H_
7
8#include <CoreGraphics/CoreGraphics.h>
9#include <vector>
10
11#include "third_party/skia/include/core/SkBitmap.h"
12
13#ifdef __OBJC__
14@class UIImage;
15@class NSData;
16#else
17class UIImage;
18class NSData;
19#endif
20
21namespace gfx {
22
23// Draws a CGImage into an SkBitmap of the given size.
24SK_API SkBitmap CGImageToSkBitmap(CGImageRef image,
25                                  CGSize size,
26                                  bool is_opaque);
27
28// Given an SkBitmap and a color space, return an autoreleased UIImage.
29SK_API UIImage* SkBitmapToUIImageWithColorSpace(const SkBitmap& skia_bitmap,
30                                                CGFloat scale,
31                                                CGColorSpaceRef color_space);
32
33// Decodes all image representations inside the data into a vector of SkBitmaps.
34// Returns a vector of all the successfully decoded representations or an empty
35// vector if none can be decoded.
36SK_API std::vector<SkBitmap> ImageDataToSkBitmaps(NSData* image_data);
37
38}  // namespace gfx
39
40#endif  // SKIA_EXT_SKIA_UTILS_IOS_H_
41