teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

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

2017/11/01 06:14

投稿

maru.wk
maru.wk

スコア30

title CHANGED
File without changes
body CHANGED
@@ -81,4 +81,6 @@
81
81
  subscript (x: Int,y: Int) -> Double{
82
82
  return getPixelColorFromUIImage(x: x, y: y)
83
83
  }
84
- ```
84
+ ```
85
+ ![イメージ説明](2eb2e1ea26c68f4be0b63381050d7dce.png)
86
+ これが画像を添付したものです。

1

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

2017/11/01 06:14

投稿

maru.wk
maru.wk

スコア30

title CHANGED
File without changes
body CHANGED
@@ -1,16 +1,84 @@
1
1
  mac用のアプリを開発しています。
2
2
  ```swift
3
+
4
+ var bright = [Double]()
5
+
3
- override func viewDidLoad() {
6
+ override func viewDidLoad() {
4
7
  super.viewDidLoad()
5
- var imageRect = NSRect(x: 0, y: 0, width: (image?.size.width)!, height: (image?.size.height)!)
8
+ // var imageRect = NSRect(x: 0, y: 0, width: (image?.size.width)!, height: (image?.size.height)!)
6
- let cgImage = image?.cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
9
+ // let cgImage = image?.cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
10
+
11
+ //画像を指定
12
+ let image = NSImage(named: "sheep.jpg")
13
+
14
+ if let brightness = Brightness(myImage: image!) {
15
+ for y in 0..<brightness.height{
7
- ...
16
+ for x in 0..<brightness.width{
17
+ bright.append(brightness[x,y])
8
- }
18
+ }
19
+ }
20
+ }
9
21
 
22
+
23
+
10
24
 
11
25
  ```
12
26
  上記のようなコードなのですが、アプリをビルドしようとすると、Thread 1 :exc_bad_instruction (code=exc_i386_invop subcode=0x0)というエラーがでてしまいビルドできません。
13
- ![イメージ説明](1af7e9d31423a13b63f0917dd9572f14.png)
27
+ ![イメージ説明](b4469503365da997ce4287834aa938b9.png)
14
28
 
15
29
  ちなみにNS部品との紐付けは切れておりませんでした。
16
- どうすればよいか見当も付かず、とても困っております。どなたかよろしくお願い板しまう。
30
+ どうすればよいか見当も付かず、とても困っております。どなたかよろしくお願い板しまう。
31
+
32
+ 〜追記〜
33
+ 使用したクラスは以下の通りです。
34
+ ```swift
35
+ import Foundation
36
+ import Cocoa
37
+
38
+ extension NSImage {
39
+ var toCGImage: CGImage? {
40
+ var imageRect = NSRect(x: 0, y: 0, width: size.width, height: size.height)
41
+
42
+ let myImage = cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
43
+ return myImage!
44
+ }
45
+
46
+ }
47
+
48
+ class Brightness {
49
+
50
+ var width : Int
51
+ var height : Int
52
+ var pixcelData : Data
53
+ let bytesPerRow : Int
54
+
55
+ init? (myImage: NSImage) {
56
+ guard
57
+
58
+ let cgImage = myImage.toCGImage
59
+
60
+ else {return nil}
61
+
62
+
63
+ pixcelData = cgImage.dataProvider!.data! as Data
64
+ width = cgImage.width
65
+ height = cgImage.height
66
+ bytesPerRow = cgImage.bytesPerRow;
67
+ }
68
+ func getPixelColorFromUIImage(x: Int,y: Int) -> Double {
69
+ let pixelInfo: Int = (Int(bytesPerRow) * y + x * 4)
70
+ let r = Double(pixcelData[pixelInfo])
71
+ ...
72
+ let R = pow(r,2.2)*0.222015
73
+ ...
74
+ let y = pow((R+G+B),(1/2.2))
75
+
76
+ let light = pow((M_E),(y-115.97)/60.056)
77
+
78
+ return Double(light)
79
+
80
+ }
81
+ subscript (x: Int,y: Int) -> Double{
82
+ return getPixelColorFromUIImage(x: x, y: y)
83
+ }
84
+ ```