blob: ce9709b78a5f6f98bf2bbf86114753e7b81aec5b [file] [log] [blame]
// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file declares platform-specific helper functions in gfx::internal for
// use by image.cc.
//
// The functions are implemented in image_generic.cc (all platforms other than
// iOS), image_ios.mm and image_mac.mm.
#ifndef UI_GFX_IMAGE_IMAGE_PLATFORM_H_
#define UI_GFX_IMAGE_IMAGE_PLATFORM_H_
#include <memory>
#include <vector>
#include "base/memory/ref_counted.h"
#include "base/memory/ref_counted_memory.h"
#include "build/build_config.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/image/image_png_rep.h"
#include "ui/gfx/image/image_skia.h"
#if BUILDFLAG(IS_IOS)
#include "base/apple/foundation_util.h"
#include "ui/gfx/image/image_skia_util_ios.h"
#elif BUILDFLAG(IS_MAC)
#include "base/apple/foundation_util.h"
#include "base/mac/mac_util.h"
#include "ui/gfx/image/image_skia_util_mac.h"
#endif
namespace gfx::internal {
class ImageRep;
class ImageRepCocoa;
class ImageRepCocoaTouch;
#if BUILDFLAG(IS_IOS)
scoped_refptr<base::RefCountedMemory> Get1xPNGBytesFromUIImage(
UIImage* uiimage);
UIImage* UIImageFromPNG(const std::vector<ImagePNGRep>& image_png_reps);
UIImage* UIImageOfImageRepCocoaTouch(const ImageRepCocoaTouch* image_rep);
std::unique_ptr<ImageRep> MakeImageRepCocoaTouch(UIImage* image);
#elif BUILDFLAG(IS_MAC)
scoped_refptr<base::RefCountedMemory> Get1xPNGBytesFromNSImage(
NSImage* nsimage);
NSImage* NSImageFromPNG(const std::vector<ImagePNGRep>& image_png_reps);
// TODO(crbug.com/40286491): Remove callers to this function.
inline NSImage* NSImageFromPNG(const std::vector<ImagePNGRep>& image_png_reps,
CGColorSpaceRef color_space) {
return NSImageFromPNG(image_png_reps);
}
NSImage* NSImageOfImageRepCocoa(const ImageRepCocoa* image_rep);
std::unique_ptr<ImageRep> MakeImageRepCocoa(NSImage* image);
#endif
ImageSkia ImageSkiaFromPNG(const std::vector<ImagePNGRep>& image_png_reps);
scoped_refptr<base::RefCountedMemory> Get1xPNGBytesFromImageSkia(
const ImageSkia* image_skia);
} // namespace gfx::internal
#endif // UI_GFX_IMAGE_IMAGE_PLATFORM_H_