2012-01-21 7 views
-1

w x hの画像Gが与えられた場合、どのように画像を白で囲んで320x480の新しい画像を生成できますか? 、白く囲まれています。入力画像の幅と高さは320または480よりも大きくなる可能性がありますので、最初に320x480(またはそれに等しい)未満になるように拡大縮小する必要があります。画像を指定すると、領域内のすべての周辺領域に白を追加します。 - iOS

-(UIImage *)whiteVersion:(UIImage *)img { 

} 

私はこれらの手順を使用します。

Firstly, scale image if needed...then: 
1. Create a UIImage of size 320x480 
2. Paint the whole thing white 
3. Paint G (the image) in the center by using some simple math to find the location 

しかし、私はステップ1または2

+0

私はステップ1を手助けするために検索を試みましたが、成功しませんでした。 – CodeGuy

答えて

5

あなたがイメージに描画しないを把握することはできません。グラフィックスコンテキストに描画します。グラフィックスコンテキストにはさまざまな種類があります。イメージグラフィックスコンテキストを使用すると、そのコンテンツのスナップショットをイメージとして取得できます。

- (UIImage *)whiteVersion:(UIImage *)myImage { 
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 480), YES, myImage.scale); 
    [[UIColor whiteColor] setFill]; 
    UIRectFill(CGRectInfinite); 
    [myImage drawAtPoint:CGPointMake((320 - myImage.size.width)/2, (480 - myImage.size.height)/2)]; 
    UIImage *myPaddedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return myPaddedImage; 
} 

あなたはDrawing and Printing Guide for iOSQuartz 2D Programming Guideを熟読することによってiOSの上での描画についての詳細を学ぶことができます。

+0

ありがとう、これはうまくいくと思います。ただし、着信サイズが320x480より大きい場合はどうなりますか。基本的には、ユーザーが自分のアルバムから写真を選択させるようにしています。そのためのコードを追加できますか? – CodeGuy

+1

私はあなたが試してみると、それを行う方法を理解することができると確信しています。 –

+0

スケールコードを使用しようとしましたが、動作しません。( – CodeGuy

関連する問題