2012-01-16 8 views
4

UIImageを最初から作成するにはどうしたらいいですか?具体的には、サイズ320x50のUIImageを作成したいと思います。次に、その画像に特定の色のポリゴンを描画したいと思います。特定のサイズのUIImageを作成する

+0

Quartz Graphicsを使用して簡単に画像を描くことができます。私が正しく理解すれば、イメージ上に何かを描きたいだけですか?クォーツグラフィックスでは、画像を描いてクォーツグラフィックスを終えた後に、描いた画像の上に物を描くことができます。おそらくそれを見たいと思うはずです;) –

答えて

5

の結果を使用してUIImageを作成します。私の経験上、あなたstitch picture in iphone

とベースのための答えですが、私はあなたにいくつかの注意を与えることができます:

Propotional規模

 
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize 
{ 
UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize); 
[image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)]; 
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return scaledImage; 
} 

リサイズ

 
- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize 
{ 
UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height)); 
[image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)]; 
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return reSizeImage; 
} 

特定のビューにハンドル

インポートするHAVA QuzrtzCore.framework最初

 
-(UIImage*)captureView:(UIView *)theView 
{ 
CGRect rect = theView.frame; 
UIGraphicsBeginImageContext(rect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[theView.layer renderInContext:context]; 
UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return img; 
} 

範囲フォーム画像を処理

 
CGRect captureRect = yourRect 
CGRect viewRect = self.view.frame; 
UIImage *viewImg; 
UIImage *captureImg; 

UIGraphicsBeginImageContext(viewRect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[self.view.layer renderInContext:context]; 
viewImg = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

captureImg = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(viewImg.CGImage, captureRect)]; 

保存画像アプリで

保存

 
NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"image.png"]; 
[UIImagePNGRepresentation(image) writeToFile:path atomically:YES]; 

アルバムで保存

 
CGImageRef screen = UIGetScreenImage(); 
UIImage* image = [UIImage imageWithCGImage:screen]; 
CGImageRelease(screen); 
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil); 
+0

この広範な応答をありがとう、しかし、私はこれらのことのいくつかが "範囲フォームイメージを扱う"など、何を意味するのかよくわかりません... UIImage * newImage = [oldImage drawPolygonOnOldImage :ポリゴン]; – CodeGuy

2

次のことが可能です。

  1. あなたが必要となりますCGBitmapContext色を使用して/ピクセル/寸法/などを作成します。
  2. コンテキストを使用するか、ピクセルを直接操作します。
  3. ここCGBitmapContextCreateImage
+1

これを行う方法の詳細を表示できますか? – CodeGuy

関連する問題