2016-05-18 9 views
1

ユーザーに地図を表示するように要求するアプリケーションで作業しています。画像Iと一緒にサーバーに送信すると、画像を0.1にスケールして、そのサイズを縮小することができます。 事は、私はGoogle Maps IOS SDKのマーカーにカスタム画像を追加すると、メモリが大量に追加されます

-(UIImage*) drawImage: (UIImage*) fgImage 
      inImage:(UIImage*) bgImage 
      atPoint:(CGPoint) point 
{ 
     UIGraphicsBeginImageContextWithOptions(bgImage.size, FALSE, 0.0); 
     [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)]; 
     [fgImage drawInRect:CGRectMake(point.x, point.y, fgImage.size.width, fgImage.size.height)]; 
     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     return newImage; 
} 

fgImageは、ユーザーPICの画像であり、bgImageがベースイメージですcode`を使用し、このマーカーにユーザ画像を貼り付ける this is the base image on which user picture will be pasted

のようなコードをユーザーの画像を表示する必要があります。 このfuctionは緑色のマーカーと丸いユーザー画像が貼られた完全な画像を返します。その後、私は、この画像がマーカー

marker.icon = [self drawImage:[self makeRoundedImage:img radius:25] inImage:markerImage atPoint:CGPointMake((markerImage.size.width/2)-25, (markerImage.size.width/2)-25)]; 

地図に渡す私が直面しています問題は、私は70人のテストユーザーを作成し、アプリケーションのメモリがそれに非常に多くのカスタムマーカーで100メガバイトに成長しています。 この状況を処理するための最善の解決策を提案してください。おかげさまで

+0

ちょっとハッサン、私に説明してもらえますか?どのように丸いイメージでそのマーカーを取得しましたか? –

答えて

0

複数のマーカーで同じ画像を使用する場合は、同じオブジェクトの複数のインスタンスではなく、同じオブジェクトを参照していることを確認してください。このissueの解決策を確認することもできます。

詳細については、SO questionもチェックしてください。

関連する問題