Just a Computer Graphics Studio & My Life

想要將視圖 (view)上的內容儲存成影像,可以怎麼做呢?因為我想要將相片和邊框結合在一起,然後輸出成影像來儲存。

iOS 儲存視圖上的內容成影像

可以看到中間有張白底加上相片的view,我將這兩部分合起來變成一張圖。

原以為實作上相當複雜,看了前人的解答之後,原來有API可以直接使用,只要幾行code即可做到!

// 直接在該view controller實作並使用
- (UIImage *)renderToImage
{
  // IMPORTANT: using weak link on UIKit
  if(UIGraphicsBeginImageContextWithOptions != NULL)
  {
    UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 0.0);
  } else {
    UIGraphicsBeginImageContext(self.frame.size);
  }
  [self.layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return image;
}

// 在共用的view controller實作,可以給任何view controller使用
// iOS 4 以後可直接這麼使用
+ (UIImage *)renderToImage:(UIView *)view
{// 將螢幕畫面轉換成影像
    UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, [UIScreen mainScreen].scale);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

將畫布設定為想要的大小、是否透明、螢幕尺度即可。

接著只要將回傳的image再做利用即可!至於詳細的參數細節就去看StackOverFlow裡高手的解釋吧~

參考:Saving UIView contents in iOS 4 with real size of the images inside (i.e. scale contentes up for save)

Advertisements

Comments on: "[iOS] 儲存視圖為影像 (Save View to Image)" (1)

  1. […] 如果同時是個程式設計師,這一切就可以交由程式碼來幫我解決囉!可以先回顧文章:儲存視圖為影像 (Save View to Image)。 […]

    喜歡

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: