5

書かれたテキストをUIImageに追加したいテキストボックスがあります。

NSStringをUIImageに描画するにはどうすればよいですか?

私は検索してたくさんの例を見つけましたが、どれもうまくいきません。Xcodeは私にたくさんのエラーを与えます。

簡単に言えば、NSStringをUIimageに描画したいと思います。UIImageは、事前定義されたUIImageViewと同じサイズで、中央に配置する必要があります。

何か案は?

4

3 に答える 3

6

私は解決策がここにあると思います..私は私のアプリケーションの1つでこのメソッドを使用しました.ここでlbltextは私のラベルのオブジェクトです. このメソッドは、指定されたテキストで新しい画像を作成し、テキストで新しい画像のオブジェクトを返します。

-(UIImage *) drawText:(NSString*) text inImage:(UIImage*)image atPoint:(CGPoint)point 
{
    UIFont *font = lblText.font;
    UIGraphicsBeginImageContext(iv.frame.size);
    [image drawInRect:CGRectMake(0,0,iv.frame.size.width,iv.frame.size.height)];
    CGRect rect = CGRectMake(point.x,point.y,lblText.frame.size.width, lblText.frame.size.height);
    [lblText.textColor set];
    [text drawInRect:CGRectIntegral(rect) withFont:font]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

以下のコメントでは、ポイントとしてiv.centerを渡しました..このように手動で試してください

CGPoint point;
point.x=30; // dynamicaly just for example lblText.frame.origin.x;
point.y=40; //lblText.frame.origin.y;

このように上記のメソッドを呼び出す必要があります...

UIImage *img = [self drawText:@"Test String" inImage:originalImage atPoint:point];

ここで、img は、新しい画像をテキストとともに保存するための UIImage の別のインスタンスです...このメソッドを呼び出した後、後で使用するために img imager を使用します..

例えば...

[newimageviewObj setImage:img];

これがあなたに役立つことを願っています

于 2012-09-25T07:26:50.573 に答える
1

UIImage は UIView のサブビューではないため、サブビューを追加することはできません。また、NSString は UIView のサブビューではありません。画面に表示したい場合は、UIView を継承する必要があります。

だからこれを試してください:

UIImageView を作成します - そのイメージ プロパティを UIImage インスタンスに設定します。

UILabel を作成します - その text プロパティを NSString に設定します。

UIImageView のサブビューとして UILabel を追加します。

最後に、UIImageView を現在のビュー コントローラー ビューに追加します。

于 2012-09-24T20:40:25.060 に答える