0

ユーザーが事前に選択した画像をライブラリまたはフォトギャラリーから選択した画像にドラッグして配置し、新しく編集した画像を全体として保存できるようにしようとしています。

以下のコードは、2 つの画像をマージしますが、ユーザーが選択した同じ場所に 2 番目の画像を保存しません。「userImage」は静的ではないものです。ご意見をお寄せいただきありがとうございます。

//Saves the image to the camera roll
- (IBAction)savePhoto:(id)sender {


UIImage *backgroundImage = [imageView image]; //This image is static

//This image will be moved around by a touchesMoved event
UIImage *userImage = [UIImage imageNamed:@"chopper_stash.png"];

UIGraphicsBeginImageContext(backgroundImage.size);
[backgroundImage drawInRect:CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height)];

//I realize that this sends the image to the top left, but how do I declare it's new location
[userImage drawInRect:CGRectMake(0,0, userImage.size.width, userImage.size.height)];

UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(result, nil, nil, nil);
}
4

1 に答える 1

0

あなたが言っています:

[userImage drawInRect:CGRectMake(0,0, userImage.size.width, userImage.size.height)];

明らかに、これは が点 、つまり左上隅にuserImage描画されることを意味します。0,0そこに画像を描画したくない場合は、そこに描画しないでください。好きなところに描いてください。

ちなみに、画像全体を独自のサイズで描画している場合は、使用する必要はありませんdrawInRect:。そのまま使用してdrawAtPoint:ください。もっと簡単です。

于 2013-03-29T12:54:01.090 に答える