2011-02-15 16 views
0

私はUIImageでサイズ1800x1300の画像を読み込んでいます(サーバーから画像を取得しています)。その画像をUiscrollview.whileに追加して画像をスクロールすると、アプリがクラッシュしました。サイズの問題?.....事前に感謝します。大きな画像サイズの問題

+0

デバイスメモリには約9MBの容量がありますが、古いデバイスでもiOSアプリケーションでそれを処理するのは難しくありません。それはあなたのアプリの残りの部分に依存し、画像が来たときにアプリがいくらかのスペースを解放できるようにメモリをよりよく管理するようにします。 – lomanf

+0

あなたのイメージはとても大きいです。あなたの 'UIScrollView'にいくつかの詳細を表示するにはこのサイズが必要です。そのサイズが必要ない場合は、取得する前にサーバー側でイメージのサイズを変更することができます。 – lomanf

答えて

0

特に、iPhoneの画面サイズの場合は、画像を大幅に縮小する必要があります。

品質に影響を与えずにできるだけイメージを圧縮する必要があります。あなたのイメージは、約1.5MB〜2MBのどこかにあると仮定しています。そのため、メモリの場合は極端な量が消費され、毎回デバイスがクラッシュする可能性があります。

+0

ya.thank u ..しかし、私の画像を拡大するにはどうすればいいですか? UIGraphicsBeginImageContext(newSize)を使用します。 [image drawInRect:CGRectMake(0,0、newSize.width、newSize.height)];UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); ..........? – Madhumitha

+1

いいえ、あなたはグラフィックスエディタでそれを行う必要があります、私は 'プレビュー'、Mac OS Xの内蔵の画像エディタをお勧めします。 – WrightsCS

+0

しかし、Webサーバーから画像を取得しています..どのように私は "プレビュー"を使用して編集できます....? – Madhumitha

1
UIImage *image = [UIImage imageNamed:@"image.png"]; 
NSData *imgData = UIImageJPEGRepresentation([UIImage imageWithCGImage:[image CGImage]],0.5); 
UIImage *compressedImage = [UIImage imageWithData:mgData]; 
+0

@Manjunath:ありがと。しかし、サーバーからPNGイメージを取得しています。私は何をすることができます..? – Madhumitha

+0

あなたがpngかjpegかどうかは関係ありません。編集された答えを見てください。 – Manjunath

+0

問題は、アプリケーションをロードしようとするとクラッシュし、クライアント側で「圧縮」しようとすると、イメージのサイズを変更するためにメモリにロードする必要があるため、常にクラッシュすることです。 .. – lomanf

関連する問題