15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef SKIA_EXT_SKIA_UTILS_IOS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SKIA_EXT_SKIA_UTILS_IOS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <CoreGraphics/CoreGraphics.h> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/skia/include/core/SkBitmap.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __OBJC__ 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)@class UIImage; 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)@class NSData; 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class UIImage; 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class NSData; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace gfx { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Draws a CGImage into an SkBitmap of the given size. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SK_API SkBitmap CGImageToSkBitmap(CGImageRef image, 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CGSize size, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool is_opaque); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Given an SkBitmap and a color space, return an autoreleased UIImage. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SK_API UIImage* SkBitmapToUIImageWithColorSpace(const SkBitmap& skia_bitmap, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CGFloat scale, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CGColorSpaceRef color_space); 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Decodes all image representations inside the data into a vector of SkBitmaps. 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Returns a vector of all the successfully decoded representations or an empty 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// vector if none can be decoded. 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)SK_API std::vector<SkBitmap> ImageDataToSkBitmaps(NSData* image_data); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace gfx 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // SKIA_EXT_SKIA_UTILS_IOS_H_ 41