1

私のアプリでは、ユーザーが写真を選択または撮影してから、他のオブジェクトまたはテキストを上に追加し、それらを回転/サイズ変更できます。

保存するために、iPhone画面のスクリーンショットを撮っています。何時間も試した後、追加されたオブジェクトが正しい場所に配置され、正しい回転/サイズ変更で元の画像を保存する方法がわかりませんでした/etc... (誰かがこれを行う方法の良い例/チュートリアルを知っていれば、それは非常に役に立ちます!)

サイズが 320x366 の UIView があります。ユーザーが画像を選択すると、そのUIView内にロードされ、アスペクト比に合わせてサイズが調整されます。ユーザーが自分の画像にオブジェクトを追加/編集したら、それを保存できます。

-(UIImage *)createMergedImage
{
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(contentView.frame.size.width, contentView.frame.size.height), NO, 0.0f);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextClearRect(context, CGRectMake(0, 0, contentView.frame.size.width,contentView.frame.size.height));
//contentView is the 320x366 view with all the images
    [contentView.layer renderInContext:context];
    UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return screenShot;
} 

これは、UIView を画像として保存するために使用しているコードです。画像を正しい縮小縦横比に合わせると、上下または左右に透明な境界線が表示されます。

今は保存して動作しています。画像を開くと、まさに期待どおりです。問題は、プレビュー画像を見ているときに、画像の透明部分に他の画像 (以前に iPhone で見たもの) が表示されることです。この次の画像でわかるように。 画像1

カメラ ロールに移動すると、この 2 番目の画像に見られるように、透明な部分が (本来あるべきように) 黒く見えます。 画像2

また、アプリが保存した画像に到達したときにカメラ ロールをスクロールすると、透明な領域に 0 ~ 1 秒間余分なランダムな画像が表示されてから、消えて黒くなります (正しい画像を残します)。あるべき姿)。

誰かが以前にこのようなものを見て、それを修正する方法を知っていることを願っています。

ありがとう!

4

0 に答える 0