質問編集履歴

2

一部を画像として添付しました。

2017/11/01 06:14

投稿

maru.wk
maru.wk

スコア30

test CHANGED
File without changes
test CHANGED
@@ -165,3 +165,7 @@
165
165
  }
166
166
 
167
167
  ```
168
+
169
+ ![イメージ説明](2eb2e1ea26c68f4be0b63381050d7dce.png)
170
+
171
+ これが画像を添付したものです。

1

コードの追記を行いました。

2017/11/01 06:14

投稿

maru.wk
maru.wk

スコア30

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,45 @@
2
2
 
3
3
  ```swift
4
4
 
5
+
6
+
7
+ var bright = [Double]()
8
+
9
+
10
+
5
- override func viewDidLoad() {
11
+ override func viewDidLoad() {
6
12
 
7
13
  super.viewDidLoad()
8
14
 
9
- var imageRect = NSRect(x: 0, y: 0, width: (image?.size.width)!, height: (image?.size.height)!)
15
+ // var imageRect = NSRect(x: 0, y: 0, width: (image?.size.width)!, height: (image?.size.height)!)
10
16
 
11
- let cgImage = image?.cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
17
+ // let cgImage = image?.cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
12
18
 
13
- ...
19
+
14
20
 
21
+ //画像を指定
22
+
23
+ let image = NSImage(named: "sheep.jpg")
24
+
25
+
26
+
27
+ if let brightness = Brightness(myImage: image!) {
28
+
29
+ for y in 0..<brightness.height{
30
+
31
+ for x in 0..<brightness.width{
32
+
33
+ bright.append(brightness[x,y])
34
+
15
- }
35
+ }
36
+
37
+ }
38
+
39
+ }
40
+
41
+
42
+
43
+
16
44
 
17
45
 
18
46
 
@@ -22,10 +50,118 @@
22
50
 
23
51
  上記のようなコードなのですが、アプリをビルドしようとすると、Thread 1 :exc_bad_instruction (code=exc_i386_invop subcode=0x0)というエラーがでてしまいビルドできません。
24
52
 
25
- ![イメージ説明](1af7e9d31423a13b63f0917dd9572f14.png)
53
+ ![イメージ説明](b4469503365da997ce4287834aa938b9.png)
26
54
 
27
55
 
28
56
 
29
57
  ちなみにNS部品との紐付けは切れておりませんでした。
30
58
 
31
59
  どうすればよいか見当も付かず、とても困っております。どなたかよろしくお願い板しまう。
60
+
61
+
62
+
63
+ 〜追記〜
64
+
65
+ 使用したクラスは以下の通りです。
66
+
67
+ ```swift
68
+
69
+ import Foundation
70
+
71
+ import Cocoa
72
+
73
+
74
+
75
+ extension NSImage {
76
+
77
+ var toCGImage: CGImage? {
78
+
79
+ var imageRect = NSRect(x: 0, y: 0, width: size.width, height: size.height)
80
+
81
+
82
+
83
+ let myImage = cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
84
+
85
+ return myImage!
86
+
87
+ }
88
+
89
+
90
+
91
+ }
92
+
93
+
94
+
95
+ class Brightness {
96
+
97
+
98
+
99
+ var width : Int
100
+
101
+ var height : Int
102
+
103
+ var pixcelData : Data
104
+
105
+ let bytesPerRow : Int
106
+
107
+
108
+
109
+ init? (myImage: NSImage) {
110
+
111
+ guard
112
+
113
+
114
+
115
+ let cgImage = myImage.toCGImage
116
+
117
+
118
+
119
+ else {return nil}
120
+
121
+
122
+
123
+
124
+
125
+ pixcelData = cgImage.dataProvider!.data! as Data
126
+
127
+ width = cgImage.width
128
+
129
+ height = cgImage.height
130
+
131
+ bytesPerRow = cgImage.bytesPerRow;
132
+
133
+ }
134
+
135
+ func getPixelColorFromUIImage(x: Int,y: Int) -> Double {
136
+
137
+ let pixelInfo: Int = (Int(bytesPerRow) * y + x * 4)
138
+
139
+ let r = Double(pixcelData[pixelInfo])
140
+
141
+ ...
142
+
143
+ let R = pow(r,2.2)*0.222015
144
+
145
+ ...
146
+
147
+ let y = pow((R+G+B),(1/2.2))
148
+
149
+
150
+
151
+ let light = pow((M_E),(y-115.97)/60.056)
152
+
153
+
154
+
155
+ return Double(light)
156
+
157
+
158
+
159
+ }
160
+
161
+ subscript (x: Int,y: Int) -> Double{
162
+
163
+ return getPixelColorFromUIImage(x: x, y: y)
164
+
165
+ }
166
+
167
+ ```