iOS Créer UIImage


Exemple

Avec image locale

Rapide

let image = UIImage(named: "imageFromBundleOrAsset")

Objectif c

UIImage *image = [UIImage imageNamed:@"imageFromBundleOrAsset"];

Remarque

La méthode imageNamed met en cache le contenu de l'image en mémoire. Le chargement de nombreuses images volumineuses de cette manière peut entraîner des avertissements de mémoire insuffisante, ce qui peut entraîner la fermeture de l'application. Cela peut être corrigé en utilisant la méthode imageWithContentsOfFile de UIImage , qui n'utilise pas la mise en cache.

Avec NSData

Rapide

let imageData = Data(base64Encoded: imageString, options: Data.Base64DecodingOptions.ignoreUnknownCharacters)

let image = UIImage(data: imageData!)

Avec UIColor

Rapide

let color = UIColor.red
let size = CGSize(width: 200, height: 200)
    
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
UIGraphicsGetCurrentContext()!.setFillColor(color.cgColor)
UIGraphicsGetCurrentContext()!.fill(CGRect(origin: .zero, size: size))
let colorImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

Objectif c

UIColor *color=[UIColor redColor];
CGRect frame = CGRectMake(0, 0, 80, 100);
UIGraphicsBeginImageContext(frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, frame);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Avec le contenu du fichier

Objectif c

Exemple:

UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[cellCountry objectForKey:@"Country_Flag"] ofType:nil]];

En utilisant un tableau:

Exemple:

NSMutableArray *imageArray = [[NSMutableArray alloc] init];

for (int imageNumber = 1; self.myPhoto != nil; imageNumber++) {
    NSString *fileName = [NSString stringWithFormat:@"%@.jpg", self.myPhoto];

    // check if a file exists
    if ([UIImage imageNamed:fileName]) {
        // if it exists, add it to the array
        [imageArray addObject:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"%@", fileName] ofType:@""]]];
    } else {
        break;
    }
}

// Utiliser un tableau d'images pour les animations ici:

self.myImageView.animationImages = imageArray;