2017-03-19 28 views
-2

複数の画像を水平につなぎ合わせて1つの画像として保存したい。複数の画像を水平方向につなぎ合わせる(スウィフト3)

import UIKit 
import AVFoundation 

    func stitchImages(images: [UIImage], isVertical: Bool) -> UIImage { 
    var stitchedImages : UIImage! 
    if images.count > 0 { 
     var maxWidth = CGFloat(0), maxHeight = CGFloat(0) 
     for image in images { 
      if image.size.width > maxWidth { 
       maxWidth = image.size.width 
      } 
      if image.size.height > maxHeight { 
       maxHeight = image.size.height 
      } 
     } 
     var totalSize : CGSize 
     let maxSize = CGSize(width: maxWidth, height: maxHeight) 
     if isVertical { 
      totalSize = CGSize(width: maxSize.width, height: maxSize.height * (CGFloat)(images.count)) 
     } else { 
      totalSize = CGSize(width: maxSize.width * (CGFloat)(images.count), height: maxSize.height) 
     } 
     UIGraphicsBeginImageContext(totalSize) 
     for image in images { 
      let offset = (CGFloat)(images.index(of: image)!) 
      let rect = AVMakeRect(aspectRatio: image.size, insideRect: isVertical ? 
          CGRect(x: 0, y: maxSize.height * offset, width: maxSize.width, height: maxSize.height) : 
          CGRect(x: maxSize.width * offset, y: 0, width: maxSize.width, height: maxSize.height)) 
      image.draw(in: rect) 
     } 
     stitchedImages = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    } 
    return stitchedImages 
} 

は、しかし、私はそれを使用する方法がわからない:this質問の下で私は、この提案された解決策を見つけました。誰かがイメージの配列でこれを使用する方法の例を作ることができますか?

ありがとうございました!

+0

問題点は何ですか?イメージの配列を渡して単一のイメージを取得するだけでこのメソッドを使用してください。 – Shoaib

+0

ええ、私はそれを考え出した! – Cuckoo

答えて

2

真剣に?

あなたが探しているコードは、あなたが探しているものですが、そのコードを呼び出す方法はわかりません。

関数を呼び出す方法を理解できない場合は、役立つ方法で手助けするのは少し難しいです。画像の配列を読み込んでステッチする一般的なコードは次のとおりです。

//Create an array of image names 
let imageNames = ["Fish", "Dog", "Eggplant", "Wombat"] 

//create an array of images with those names (images must exist in app bundle) 
let images = imageNames.flatMap{UIImage(named:$0)} 

//Stitch the images together horizontally 
let stichedImage = stitchImages(images: images, isVertical: false) 

Swiftを停止して読んでください。 Apple Swiftの本をダウンロードして読むことをお勧めします。それは非常に良い、非常に簡単に従う。それが私が言語を学んだ方法です。

+0

私はそれを理解しましたが、ありがとう! – Cuckoo

+0

あなたは何を持っていたのですか? –

+0

配列の画像を使って問題がありましたが、うまくいきました! – Cuckoo

関連する問題