私は一種の描画アプリを持っています。Canvas UIView のスナップショット (画面上と画面外の両方) を作成し、それを縮小したいと思います。これを行うためのコードは、iPad 3 で永遠に血まみれになります。シミュレーターには遅延はありません。キャンバスは 2048x2048 です。
これを行うべき別の方法はありますか?または、コードにミスがありますか?
ありがとうございました!
-(UIImage *) createScreenShotThumbnailWithWidth:(CGFloat)width{
// Size of our View
CGSize size = editorContentView.bounds.size;
//First Grab our Screen Shot at Full Resolution
UIGraphicsBeginImageContext(size);
[editorContentView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//Calculate the scal ratio of the image with the width supplied.
CGFloat ratio = 0;
if (size.width > size.height) {
ratio = width / size.width;
} else {
ratio = width / size.height;
}
//Setup our rect to draw the Screen shot into
CGSize newSize = CGSizeMake(ratio * size.width, ratio * size.height);
//Send back our screen shot
return [self imageWithImage:screenShot scaledToSize:newSize];
}