zoukankan      html  css  js  c++  java
  • iOS 生成随机颜色(UIColor)


    #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: %@ image:%@", err.localizedDescription, imgName);

                } else {

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

                }

            }

        }


    }




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    CALayer 的一些重要属性
    [Google] Inorder Successor in Binary Search Tree, Solution
    [LeetCode] Container With Most Water, Solution
    [C++ Summary]
    [LeetCode] Count and Say, Solution
    [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal, Solution
    [LeetCode] Convert Sorted List to Binary Search Tree, Solution
    [FaceBook] Hanoi Moves, Solution
    逻辑题汇总
    [Facebook] Products of all elements
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4658763.html
Copyright © 2011-2022 走看看