您的位置:首页 > 产品设计 > UI/UE

iOS 生成随机颜色(UIColor)

2014-05-09 11:11 501 查看
#import <UIKit/UIKit.h>

@interface UIColor (RandomColor)

+(UIColor *) randomColor;

@end

#import "UIColor+RandomColor.h"

@implementation UIColor (RandomColor)

+(UIColor *) randomColor

{

    CGFloat hue = (
arc4random() % 256 /
256.0 );  //0.0 to 1.0

    CGFloat saturation = (
arc4random() % 128 /
256.0 ) + 0.5; 
// 0.5 to 1.0,away from white

    CGFloat brightness = (
arc4random() % 128 /
256.0 ) + 0.5; 
//0.5 to 1.0,away from black

        return [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];

@end

将随机生成的颜色绘制成图片。

-(void)createImage

{

    NSString* path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)
objectAtIndex:0];

    path = @"/Users/shouqiangwei/Desktop/未命名文件夹 2";

    NSLog(@"path = %@",path);

    NSString *imgName;

    NSString *imgURL;

    NSString *markNum;

    UIImage *img;

    NSData *imgData;

    NSError *err;

    int width= 1000, height=1000, fontSize;

    CGPoint markPoint;

    int baseLength =
320;

    NSFileManager *fm = [NSFileManagerdefaultManager];

    for (int i=0; i<1000; i++) {

        UIColor *color = [UIColorrandomColor];

        [_currentColorImageViewsetBackgroundColor:color];

        imgName = [NSString
stringWithFormat:@"%i.jpg", i+1];

        _lblCount.text = imgName;

        imgURL = [path stringByAppendingPathComponent:imgName];

        if (![fm fileExistsAtPath:imgURL]) {

            const
CGFloat *colorComps = CGColorGetComponents(color.CGColor);

            markNum = [NSString
stringWithFormat:@"%i", i+1];

            fontSize = width / 5;

            markPoint = CGPointMake(fontSize/2, fontSize/2);

            UIGraphicsBeginImageContext(CGSizeMake(width, height));

            CGContextRef ctx =UIGraphicsGetCurrentContext();

            CGContextSetRGBFillColor(ctx, colorComps[0], colorComps[1], colorComps[2], colorComps[3]);

            CGContextFillRect(ctx,
CGRectMake(0,
0, width, height));

            CGContextSetRGBFillColor(ctx,
1.0, 1.0, 1.0,1.0);

            //创建图片上的数字。

            [markNum drawAtPoint:markPoint
withFont:[UIFont
systemFontOfSize:fontSize]];

            img = UIGraphicsGetImageFromCurrentImageContext();

            self.imageView.image= img;

            UIGraphicsEndImageContext();

            //创建到本地。

            imgData = [NSDatadataWithData:UIImageJPEGRepresentation(img,1.0f)];

            [imgData writeToFile:imgURLoptions:NSDataWritingAtomicerror:&err];

            if (err) {

                NSLog(@"error: %@\nimage:%@", err.localizedDescription,
imgName);

            } else {

                NSLog(@"done: %@", imgName);

            }

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  UIColor random