blob: e1f297b47d51d28551e22daee88d2e2f3d536ea6 [file] [log] [blame]
// Copyright 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.
#import <UIKit/UIKit.h>
#import "ios/chrome/browser/ui/image_util.h"
#include "ui/gfx/color_analysis.h"
#include "ui/gfx/image/image.h"
UIColor* DominantColorForImage(const gfx::Image& image, CGFloat opacity) {
SkColor color = color_utils::CalculateKMeanColorOfBitmap(*image.ToSkBitmap());
UIColor* result = [UIColor colorWithRed:SkColorGetR(color) / 255.0
green:SkColorGetG(color) / 255.0
blue:SkColorGetB(color) / 255.0
alpha:opacity];
return result;
}
UIImage* StretchableImageFromUIImage(UIImage* image,
NSInteger left_cap_width,
NSInteger top_cap_height) {
UIEdgeInsets insets =
UIEdgeInsetsMake(top_cap_height, left_cap_width,
image.size.height - top_cap_height + 1.0,
image.size.width - left_cap_width + 1.0);
return [image resizableImageWithCapInsets:insets];
}
UIImage* StretchableImageNamed(NSString* name) {
UIImage* image = [UIImage imageNamed:name];
if (!image)
return nil;
// Returns a copy of |image| configured to stretch at the center pixel.
return StretchableImageFromUIImage(image, floor(image.size.width / 2.0),
floor(image.size.height / 2.0));
}
UIImage* StretchableImageNamed(NSString* name,
NSInteger left_cap_width,
NSInteger top_cap_height) {
UIImage* image = [UIImage imageNamed:name];
if (!image)
return nil;
return StretchableImageFromUIImage(image, left_cap_width, top_cap_height);
}