iPhoneで簡単にイチから画像を作って描画して保存するには?

iPhoneでイチから画像を作って描画して保存するにはどうすればいいだろう?

まずイチから画像を作るところが問題になるけど、iPhoneでもいくつか方法があるようだ。

はじめに考えたのはCGImageCreateを使う方法だけど、このメソッドは引数が多すぎる。なんと11個だ!

もう少し簡単に出来ないのかドキュメントをあたっていると、UIGraphicsBeginImageContext()を使う方法がわかった。例えばこうする。

- (void)createDrawSaveImage {
 
  //イメージ用グラフィックスコンテクスト開始(320x480の画像を作成)
  UIGraphicsBeginImageContext(CGSizeMake(320, 480));
  
  //イメージ用グラフィックスコンテクスト取得
  CGContextRef context = UIGraphicsGetCurrentContext();

  //何か描画(左上に赤い不透明な100x100の四角を描画)
  CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
  CGContextFillRect(context, CGRectMake(0, 0, 100, 100));
 
  //描画内容をUIImageに変換
  UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
  
  //イメージ用グラフィックスコンテクスト終了
  UIGraphicsEndImageContext();
   
  //画像を「写真」に保存
  //JPEGで保存され、クオリーティーはコントロールできないようだ。
  //ImageMagickのidentifyによるとQuality=93らしい。
  UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);

}

CGContextは左下が原点だそうだけど、今回の場合は座標系の変換をしないでも左上に描画できた。

コメント

このブログの人気の投稿

レオナルド・ダ・ビンチはなぜノートを「鏡文字」で書いたのか?

macでsmb(samba)共有サーバーに別名で接続(別アカウント名で接続)する方法

Google DriveにCURLでアップロードするには?