ここまでで準備したAppについて, インポートしたLilySwiftが動作することを確認します. 簡単な画像処理を行なってSwiftUIの画面に表示してみましょう.

環境

  • iPadOS 17.1
  • Swift Playgrounds 4.4

手順

  1. 作成したAppプロジェクトの ContentView.swift を開きます.

  2. LilySwiftForPlayground をインポートします. (.xcodeprojの場合, LilySwift)

  3. 以下のコードのように createImage関数を追加します. LLImageはLilyのもつ画像オブジェクトです. ここでピクセルを操作してグラデーション画像を作成します.

  4. SwiftUIのVStackの中にImageを作ります.

  5. Imageに読み込む画像に createImage().uiImage! を記述します.

  • createImageが返してくれたLLImageをUIImageに変換するという意味です.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import SwiftUI
import LilySwiftForPlayground	// LilySwiftの場合書き換えてください.

// Lily画像データを作成する関数
func createImage() -> LLImage {
	// 256x256ピクセルの画像を作成
    let image = LLImage( wid:256, hgt:256 )
	// RGBAのピクセルデータを取得
    let matrix = image.rgbafMatrix!
    
	// 1ピクセルずつ色を塗っていく
    for y in 0 ..< image.height {
        for x in 0 ..< image.width {
            let red   = Float( x ) / Float( image.width )
            let green = Float( y ) / Float( image.height )
            let blue  = Float( x + y ) / Float( image.width + image.height )
            matrix[y][x] = LLColor( red, green, blue )
        }
    }
    
    return image
}

struct ContentView: View
{
    var body: some View {
        VStack {
			// ImageオブジェクトにcreateImageで作った画像を使う
            Image( uiImage: createImage().uiImage! )
        }
    }
}

結果

SwiftUIのImageに作成したグラデーション画像が表示されます. LilySwiftが動作していることも確認できました.

imageproc-on-swiftui_1.png