0

私が作業しているアプリでは、ユーザーがUIImagePicker(写真ライブラリか新しい写真を撮ったもの)を使って画像を読み込ませるセクションがあります。そうすることで通常は大きな画像解像度が得られます.2,500x2000(または類似のもの)iPhone - 画像の操作/編集と保存(高解像度)

この画像をUIImageViewに読み込みます(ちょうど400x320と言います)。 その後、元の画像の上にオーバーレイするために他の画像/オブジェクトを選択し、それらを移動/サイズ変更してから新しい画像をフォトライブラリに保存するか、電子メールで送信することができます。

画像を保存する最良の方法は、画像の解像度が元の解像度と同じくらい高いようにすることだけです。今はスクリーンショットを撮っていますが、小さな400x320画像。

ありがとうございます!


私はそれが正しい方法であったかどうかわかりませんでした。

これは基本的に私がやったことです。

//NEWWIDTH and NEWHEIGHT are double the width and height of the UIImageView that i can edit the pictures in 
CGSize newSize = CGSizeMake(NEWWIDTH, NEWHEIGHT); 

UIGraphicsBeginImageContext(newSize); 

//i'm resizing myOriginalImage before to how i want 
[myOriginalImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 

UIImage *image; 

//Here i go through all the other pictures i added on top and go the same drawInRect method for each of them...multiplying each value x,y,height,width by 2 

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 

return newImage; 

答えて

0

画像をどのように操作しているかは不明です。私のアプリケーションでは、シンプルなUIViewでCore Graphicsを使用しています。異なるビットマップコンテキストを使用することで同様の効果が得られます。

- (void)drawRect:(CGRect)rect { 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[_model render:rect context:context]; 
} 

そして、私は節約のためにフルサイズのビットマップをレンダリングするとき、私はCGBitmapContextと同じレンダリングコードを実行します。私の見解では、私はこれを行います。

これはオプションではないかもしれませんが、それは私のために働いています。

幸運を祈る!

+0

私はもっと具体的なのでしょう...だから、私はカメラや写真ライブラリから元の画像を読み込んで、次に他の画像を選択できるようにしています。ユーザーはそれらの画像を縮小/拡大できます元の画像の上に置かれます。最後に、私は彼らが編集した小さな画面上に高さ/幅と位置を持って追加したそれぞれの新しい画像が配列されています....私は画像のものを一度もやっていないし、 。ありがとうございました – rob1302

+0

こんにちは - 私はCoreGraphicsを読むことをお勧めします、私はそれが行く方法だと思います。 –

関連する問題