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

回答編集履歴

2

改行。

2016/03/17 05:06

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,5 +1,4 @@
1
- 今回のケースは、**画像の横サイズ**と**データの横サイズ**が一致しないために起こっている現象だと思われます。
1
+ 今回のケースは、**画像の横サイズ**と**データの横サイズ**が一致しないために起こっている現象だと思われます。(1000x1000のときは両者が一致しているので問題にならない)
2
- (1000x1000のときは両者が一致しているので問題にならない)
3
2
 
4
3
  ```swift
5
4
  //1ピクセルのバイト数

1

ちこっと。

2016/03/17 05:06

投稿

fuzzball
fuzzball

スコア16733

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が違っているはずです。