私のアプリには400x300の400パターンの画像がバンドルされています。そのイメージの一部をUIImageViewsに読み込むためのファクトリメソッドを作成したいと思います。私はコンテンツモードを使用していくつかの成功を収めており、範囲にクリッピングしていますが、1トンのビューをビューにロードすると、ビューがロードされるまでに5秒以上かかる場合があります。ここに私の現在のメソッドの例があります。UIImageデータの読み込みのみ
UIImageView *tinyImageView = [[UIImageView alloc] initWithImage:[UIImage [email protected]"400x300testImage.png"];
[tinyImageView setFrame:CGRectMake(0, 0, 10, 200)];
[tinyImageView setContentMode:UIViewContentModeTopLeft];
[tinyImageView setClipsToBounds:YES];
[self.tinyImagesView addSubview:tinyImageView];
私はImageIOにクラスファイルを読んでいると私は私の答えはそこにあるが、私は実行可能なコードを一緒に入れて苦労していると思います。別のstackoverflowの質問では、私はこのコード
CFDictionaryRef options = (__bridge CFDictionaryRef)[NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailWithTransform,
(id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailFromImageIfAbsent,
(id)[NSNumber numberWithFloat:200.0f], (id)kCGImageSourceThumbnailMaxPixelSize,
nil];
CGImageRef imgRef = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options);
UIImage *scaled = [UIImage imageWithCGImage:imgRef];
CGImageRelease(imgRef);
CFRelease(imageSource);
return scaled;
これは、完全な画像やクリッピングをロードに似てロード時間を持っているに出くわしました。
イメージファイルの10x200ストリップだけを読み込み、それを10x200 pngを作成するのと同じ速さでUIImageViewに読み込むことは可能ですか?imageNamedを使用して読み込みますか?
400x300イメージの1つを表示できますか?あなたはストリップで何をしていますか?パターンを記述すると、パターンをタイルしようとすると、大きなタイルでより良いパフォーマンスが得られます。 – iccir
私は使用された特定のイメージを表示することはできませんが、それは木目のようなものだと言えます。それはうまくスケールされない非反復パターンです。ストリップはサムネイルのように使用され、画像全体の小さな部分を識別します。 – SageAMDP