Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,11 @@
"idiom" : "ipad",
"size" : "83.5x83.5",
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"scale" : "1x"
}
],
"info" : {
Expand Down
6 changes: 6 additions & 0 deletions iOSPalette/PaletteDemo/Assets.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
4 changes: 4 additions & 0 deletions iOSPalette/PaletteDemo/ThirdLib/DemoShowColorSingleView.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#import "DemoShowColorSingleView.h"
#import "UIView+Geometry.h"
#import "UIColor+Hex.h"
#import "UIColor+Complementary.h"

@interface DemoShowColorViewCell ()

Expand Down Expand Up @@ -61,6 +62,9 @@ - (void)configureData:(PaletteColorModel*)model andKey:(NSString *)modeKey{
_showPercentageLabel.text = percentageText;
[_showPercentageLabel sizeToFit];
_showPercentageLabel.origin = CGPointMake((self.width - _showPercentageLabel.width)/2, _showColorLabel.bottom + 5.0f);

_showColorLabel.textColor = _showPercentageLabel.textColor = [self.backgroundColor blackWhiteComplementaryColor];

}

@end
30 changes: 30 additions & 0 deletions iOSPalette/PaletteDemo/ThirdLib/UIButton+BlackWhiteImage.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
//
// UIButton+BlackWhiteImage.h
// PaletteDemo
//
// Created by yhy on 2018/11/8.
// Copyright © 2018年 kmyhy. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIButton (BlackWhiteImage)

// 根据一张背景图片生成一张对比强烈的黑白色图片作为 button 的 image
-(void)setBlackWhiteImageWithImage:(UIImage*)image backgroundImage:(UIImage*)bgImage;
/**
根据背景 view 中的某个区域设置 button 的 image(白或黑)
@image button 的 image
@bgView button 的背景 view
@rect button 在背景 view 上所占据的区域
**/
-(void)setBlackWhiteImageWithImage:(UIImage*)image backgroundView:(UIView*)bgView withRect:(CGRect)rect;
/**
上一方法的简化版,最后一个参数自动计算。假设 button 和 backgroundView 是同一个 parent view。
*/
-(void)setBlackWhiteImageWithImage:(UIImage*)image backgroundView:(UIView*)bgView;
@end

NS_ASSUME_NONNULL_END
35 changes: 35 additions & 0 deletions iOSPalette/PaletteDemo/ThirdLib/UIButton+BlackWhiteImage.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// UIButton+BlackWhiteImage.m
// PaletteDemo
//
// Created by yhy on 2018/11/8.
// Copyright © 2018年 kmyhy. All rights reserved.
//

#import "UIButton+BlackWhiteImage.h"
#import "UIImage+Palette.h"
#import "UIColor+Complementary.h"
#import "UIColor+Hex.h"
#import "UIImage+Extension.h"
#import "UIView+snapshot.h"

@implementation UIButton (BlackWhiteImage)
-(void)setBlackWhiteImageWithImage:(UIImage*)image backgroundImage:(UIImage*)bgImage{
[bgImage getPaletteImageColor:^(PaletteColorModel *recommendColor, NSDictionary *allModeColorDic, NSError *error) {
UIColor* color = [UIColor colorWithHexString:recommendColor.imageColorString];
UIColor* complementaryColor = [color blackWhiteComplementaryColor];
UIImage* colorImage = [image colorImage:complementaryColor];
[self setImage:colorImage forState:UIControlStateNormal];
}];
}
-(void)setBlackWhiteImageWithImage:(UIImage*)image backgroundView:(UIView*)bgView withRect:(CGRect)rect{
UIImage* snapshot = [bgView snapshot];
snapshot = [snapshot cutWithRect:rect];
[self setBlackWhiteImageWithImage:image backgroundImage:snapshot];
}

-(void)setBlackWhiteImageWithImage:(UIImage*)image backgroundView:(UIView*)bgView{
CGRect r = [self convertRect:self.bounds toView:bgView];
[self setBlackWhiteImageWithImage:image backgroundView:bgView withRect:r];
}
@end
20 changes: 20 additions & 0 deletions iOSPalette/PaletteDemo/ThirdLib/UIColor+Complementary.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// UIColor+Complementary.h
//
//
// Created by kmyhy on 2018/11/7.
// Copyright © 2018年 kmyhy. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIColor (Complementary)
// MARK: 计算互补色
-(UIColor*)complementaryColor;
// MARK: 黑白互补色
-(UIColor*)blackWhiteComplementaryColor;
@end

NS_ASSUME_NONNULL_END
40 changes: 40 additions & 0 deletions iOSPalette/PaletteDemo/ThirdLib/UIColor+Complementary.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//
// UIColor+Complementary.m
//
//
// Created by kmyhy on 2018/11/7.
// Copyright © 2018年 kmyhy. All rights reserved.
//

#import "UIColor+Complementary.h"

@implementation UIColor (Complementary)
-(UIColor*)complementaryColor{
CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0;
[self getRed:&red green:&green blue:&blue alpha:&alpha];

//Check if color is transparent
if (alpha == 0) {
return [UIColor clearColor];
}else{
return [UIColor colorWithRed:(1-red) green:(1-green) blue:(1-blue) alpha:alpha];
}
}
-(UIColor*)blackWhiteComplementaryColor{
CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0;
[self getRed:&red green:&green blue:&blue alpha:&alpha];

//Check if color is transparent
if (alpha == 0) {
return [UIColor clearColor];
}else{
// 计算亮度
red *= 0.2126f; green *= 0.7152f; blue *= 0.0722f;
CGFloat luminance = red + green + blue;

UIColor * black = [UIColor colorWithWhite:0 alpha:alpha];
UIColor * white = [UIColor colorWithWhite:1 alpha:alpha];
return (luminance > 0.6f)?black:white;
}
}
@end
31 changes: 31 additions & 0 deletions iOSPalette/PaletteDemo/ThirdLib/UIImage+Extension.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//
// UIImage-Extensions.h
//
// Created by Hardy Macia on 7/1/09.
// Copyright 2009 Catamount Software. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface UIImage (CS_Extensions)
- (UIImage *)imageAtRect:(CGRect)rect;
- (UIImage *)imageByScalingProportionallyToMinimumSize:(CGSize)targetSize;
- (UIImage *)imageByScalingProportionallyToSize:(CGSize)targetSize;
- (UIImage *)imageByScalingToSize:(CGSize)targetSize;
- (UIImage *)imageRotatedByRadians:(CGFloat)radians;
- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees;
- (UIImage*) grayishImage;
- (UIImage*)scaleToSize:(CGSize)size;
- (UIImage*)scaleToSizeKeepAspect:(CGSize)size;
- (UIImage *)scaledToScale:(CGFloat)scale;
- (UIImage *)colorImage:(UIColor *)color;
-(UIImage*)transparentRetainRGBColor:(UIColor*)color;
- (UIImage*)reverseColorImage:(UIColor*)color;
+ (UIImage *)imageWithErweima:(NSString*)erweima size:(CGSize)size;
// 如果图片超过指定大小,则压缩到指定大小,否则不压缩
-(UIImage*)scaleToMaxSizeKeepAspect:(CGSize)size;
// MARK: 按照矩形裁剪图片
- (UIImage *)cutWithRect:(CGRect )rect;
// MARK: 获取图片大小
-(CGSize)getImageSize;
@end;
Loading