回答編集履歴
2
改行。
answer
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
今回のケースは、**画像の横サイズ**と**データの横サイズ**が一致しないために起こっている現象だと思われます。
|
1
|
+
今回のケースは、**画像の横サイズ**と**データの横サイズ**が一致しないために起こっている現象だと思われます。(1000x1000のときは両者が一致しているので問題にならない)
|
2
|
-
(1000x1000のときは両者が一致しているので問題にならない)
|
3
2
|
|
4
3
|
```swift
|
5
4
|
//1ピクセルのバイト数
|
1
ちこっと。
answer
CHANGED
@@ -1,18 +1,16 @@
|
|
1
|
-
今回のケースは、**画像の横サイズ**と**データの横サイズ**が一致しないために起こっている現象
|
1
|
+
今回のケースは、**画像の横サイズ**と**データの横サイズ**が一致しないために起こっている現象だと思われます。
|
2
|
-
(
|
2
|
+
(1000x1000のときは両者が一致しているので問題にならない)
|
3
3
|
|
4
|
-
ついでに、1ピクセルのサイズもキチンと取得するようにしてみました。
|
5
|
-
|
6
4
|
```swift
|
7
5
|
//1ピクセルのバイト数
|
8
6
|
let bytesPerPixel = CGImageGetBitsPerPixel(myImageView.image!.CGImage) / 8
|
9
7
|
//1ラインのバイト数
|
10
8
|
let bytesPerRow = CGImageGetBytesPerRow(myImageView.image!.CGImage)
|
11
|
-
print(bytesPerPixel)
|
9
|
+
print("bytesPerPixel=\(bytesPerPixel) bytesPerRow=\(bytesPerRow)")
|
12
|
-
print(bytesPerRow)
|
13
10
|
|
14
11
|
//タップした位置の座標にあたるアドレスを算出
|
15
12
|
let pixelAd: Int = Int(tapPoint.y) * bytesPerRow + Int(tapPoint.x) * bytesPerPixel
|
16
13
|
```
|
17
14
|
|
18
|
-
|
15
|
+
ついでに、1ピクセルのサイズもキチンと取得するようにしてみました。
|
16
|
+
375x667のときはフィルタの有無でbytesPerRowが違っているはずです。
|