| Index: ui/gfx/image/image_mac.mm
|
| diff --git a/ui/gfx/image/image_mac.mm b/ui/gfx/image/image_mac.mm
|
| deleted file mode 100644
|
| index 15a56108342ac754d07fe4fdf758601c21c70712..0000000000000000000000000000000000000000
|
| --- a/ui/gfx/image/image_mac.mm
|
| +++ /dev/null
|
| @@ -1,111 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "ui/gfx/image/image.h"
|
| -
|
| -#import <AppKit/AppKit.h>
|
| -
|
| -#include "base/logging.h"
|
| -#include "base/mac/scoped_nsobject.h"
|
| -#include "ui/gfx/image/image_png_rep.h"
|
| -#include "ui/gfx/size.h"
|
| -
|
| -namespace gfx {
|
| -namespace internal {
|
| -
|
| -namespace {
|
| -
|
| -// Returns a 16x16 red NSImage to visually show when a NSImage cannot be
|
| -// created from PNG data.
|
| -// Caller takes ownership of the returned NSImage.
|
| -NSImage* GetErrorNSImage() {
|
| - NSRect rect = NSMakeRect(0, 0, 16, 16);
|
| - NSImage* image = [[NSImage alloc] initWithSize:rect.size];
|
| - [image lockFocus];
|
| - [[NSColor colorWithDeviceRed:1.0 green:0.0 blue:0.0 alpha:1.0] set];
|
| - NSRectFill(rect);
|
| - [image unlockFocus];
|
| - return image;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -scoped_refptr<base::RefCountedMemory> Get1xPNGBytesFromNSImage(
|
| - NSImage* nsimage) {
|
| - CGImageRef cg_image = [nsimage CGImageForProposedRect:NULL
|
| - context:nil
|
| - hints:nil];
|
| - base::scoped_nsobject<NSBitmapImageRep> ns_bitmap(
|
| - [[NSBitmapImageRep alloc] initWithCGImage:cg_image]);
|
| - NSData* ns_data = [ns_bitmap representationUsingType:NSPNGFileType
|
| - properties:nil];
|
| - const unsigned char* bytes =
|
| - static_cast<const unsigned char*>([ns_data bytes]);
|
| - scoped_refptr<base::RefCountedBytes> refcounted_bytes(
|
| - new base::RefCountedBytes());
|
| - refcounted_bytes->data().assign(bytes, bytes + [ns_data length]);
|
| - return refcounted_bytes;
|
| -}
|
| -
|
| -NSImage* NSImageFromPNG(const std::vector<gfx::ImagePNGRep>& image_png_reps,
|
| - CGColorSpaceRef color_space) {
|
| - if (image_png_reps.empty()) {
|
| - LOG(ERROR) << "Unable to decode PNG.";
|
| - return GetErrorNSImage();
|
| - }
|
| -
|
| - base::scoped_nsobject<NSImage> image;
|
| - for (size_t i = 0; i < image_png_reps.size(); ++i) {
|
| - scoped_refptr<base::RefCountedMemory> png = image_png_reps[i].raw_data;
|
| - CHECK(png.get());
|
| - base::scoped_nsobject<NSData> ns_data(
|
| - [[NSData alloc] initWithBytes:png->front() length:png->size()]);
|
| - base::scoped_nsobject<NSBitmapImageRep> ns_image_rep(
|
| - [[NSBitmapImageRep alloc] initWithData:ns_data]);
|
| - if (!ns_image_rep) {
|
| - LOG(ERROR) << "Unable to decode PNG at "
|
| - << image_png_reps[i].scale
|
| - << ".";
|
| - return GetErrorNSImage();
|
| - }
|
| -
|
| - // PNGCodec ignores colorspace related ancillary chunks (sRGB, iCCP). Ignore
|
| - // colorspace information when decoding directly from PNG to an NSImage so
|
| - // that the conversions: PNG -> SkBitmap -> NSImage and PNG -> NSImage
|
| - // produce visually similar results.
|
| - CGColorSpaceModel decoded_color_space_model = CGColorSpaceGetModel(
|
| - [[ns_image_rep colorSpace] CGColorSpace]);
|
| - CGColorSpaceModel color_space_model = CGColorSpaceGetModel(color_space);
|
| - if (decoded_color_space_model == color_space_model) {
|
| - base::scoped_nsobject<NSColorSpace> ns_color_space(
|
| - [[NSColorSpace alloc] initWithCGColorSpace:color_space]);
|
| - NSBitmapImageRep* ns_retagged_image_rep =
|
| - [ns_image_rep
|
| - bitmapImageRepByRetaggingWithColorSpace:ns_color_space];
|
| - if (ns_retagged_image_rep && ns_retagged_image_rep != ns_image_rep)
|
| - ns_image_rep.reset([ns_retagged_image_rep retain]);
|
| - }
|
| -
|
| - if (!image.get()) {
|
| - float scale = image_png_reps[i].scale;
|
| - NSSize image_size = NSMakeSize([ns_image_rep pixelsWide] / scale,
|
| - [ns_image_rep pixelsHigh] / scale);
|
| - image.reset([[NSImage alloc] initWithSize:image_size]);
|
| - }
|
| - [image addRepresentation:ns_image_rep];
|
| - }
|
| -
|
| - return image.release();
|
| -}
|
| -
|
| -gfx::Size NSImageSize(NSImage* image) {
|
| - NSSize size = [image size];
|
| - int width = static_cast<int>(size.width);
|
| - int height = static_cast<int>(size.height);
|
| - return gfx::Size(width, height);
|
| -}
|
| -
|
| -} // namespace internal
|
| -} // namespace gfx
|
| -
|
|
|