回答編集履歴

2

画像が真っ黒になってしまう原因について追記しました。

2023/04/04 02:33

投稿

KEMONO_PANTSU_k
KEMONO_PANTSU_k

スコア497

test CHANGED
@@ -38,3 +38,23 @@
38
38
  次のstackoverflowのQAを参考にしました。
39
39
  https://stackoverflow.com/questions/58758370/how-could-i-initialize-the-state-variable-in-the-init-function-in-swiftui
40
40
 
41
+ ### 追記2
42
+
43
+ コメントありがとうございます。
44
+
45
+ > しかし、表示された画像が真っ黒になってしまっており、原因がわからない状況です。
46
+
47
+ ごめんなさい。
48
+ 質問内容が「アンラップできること」だったので、
49
+ そこまで確認していませんでした・・
50
+
51
+ 20行目の`if color > threshold {`につきまして、
52
+ colorは0.5のような感じなのに対し、
53
+ thresholdの方は50(%単位?)のような感じのため、
54
+ 全部elseの方(`color = 0`)になっているように見えました。
55
+
56
+ `if color > threshold / 100 {`
57
+ のように変更してみたらいかがでしょうか?
58
+
59
+ *createBinarizedImageを呼び出す時に単位変更の計算をしておいても良いと思います
60
+

1

コードを追記しました。

2023/04/02 06:19

投稿

KEMONO_PANTSU_k
KEMONO_PANTSU_k

スコア497

test CHANGED
@@ -16,3 +16,25 @@
16
16
  になっているかどうか、
17
17
  確認してみると良いのかなと思いました。
18
18
 
19
+ ### 追記
20
+
21
+ ごめんなさい。
22
+ PNGの画像で確認していたから8bitとか32bitのところで弾かれていたようでした。
23
+ JPEGの画像で確認したところその先に進みました。
24
+
25
+ 次のようにするとimg_binのプロパティが設定できると思います。
26
+
27
+ ```swift
28
+ // img_bin = img!.createBinarizedImage(r: r, g: g, b: b, a: a, threshold:bin)
29
+ _img_bin = State(initialValue: img!.createBinarizedImage(r: r, g: g, b: b, a: a, threshold:bin))
30
+ ```
31
+
32
+ @Stateのプロパティラッパー型は、init(イニシャライザ)で初期値を設定するのに、
33
+ ちょっと特殊な書き方をするみたいです。
34
+
35
+ `_img_bin` のようにプロパティ名の先頭に「_」をつけます。
36
+ 設定する値は`State(initialValue: ~)` のようにState構造体のイニシャライザを呼び出す形にします。
37
+
38
+ 次のstackoverflowのQAを参考にしました。
39
+ https://stackoverflow.com/questions/58758370/how-could-i-initialize-the-state-variable-in-the-init-function-in-swiftui
40
+