アイデア?座標点に基づいてピクセルデータを取得する。howtoはCGPoint(x、y)に基づいてピクセルデータを取得しますか?
答えて
私はそれをテストしていませんが、動作するはずです。 image
はUIImage
です。 for
は画像をループし、各ピクセルのRGBA値を取得します。ループを削除して、xx
とyy
を座標に置き換えれば、1つのピクセルが得られます。
CGImageRef imageRef = [image CGImage];
NSUInteger width = CGImageGetWidth(imageRef);
NSUInteger height = CGImageGetHeight(imageRef);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = malloc(height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGContextRelease(context);
// this loops through all the pixels
for(int yy = 0; yy<height; yy++) {
for(int xx = 0; xx<width; xx++) {
int byteIndex = (bytesPerRow * yy) + xx * bytesPerPixel;
short r = rawData[byteIndex];
short g = rawData[byteIndex + 1];
short b = rawData[byteIndex + 2];
short a = rawData[byteIndex + 3];
}
}
free(rawData);
こんにちはBrainfeeder、あなたは画像が画面全体を占めていると仮定していますか?画像が小さい画像の場合はどうなりますか?個々のピクセルにアクセスするためのインデックスは、実際のフル座標に変換されません。たとえば、インデックスxx = 0、yy = 0では、実際の座標で小さな画像が始まります。たとえば(220,145)としましょう。画面に複数の小さな画像がある場合はどうなりますか? – lilzz
例えば、もし点が(220、160)であれば、それは小さな画像の真ん中のどこかで、画像の中でxxとyyをどうやって見つけますか? (220,160)を(xx、yy)に変換するか? – lilzz
ピクセル(220,160)を探しているなら、 'xx = 220'と' yy = 160'です。注意して、2つの 'for'ループを削除する必要があります。 – pt2ph8
- 1. 実行方法x、y、z軸の値に基づいて通知を取得しますか?
- 2. マウスクリックのx、yに基づいて動的にJLabelアイコンを変更します。
- 3. HowToは、レール3の役割に基づいてユーザーをリダイレクトしますか?
- 4. Python redisはタイムスタンプに基づいてリストを取得します
- 5. JTextFieldは条件に基づいて値を取得します
- 6. SQLクエリ質問:Xには多くのYがあります。すべてのXを取得し、Xごとに最新のYを取得します。
- 7. SQL:変換テーブルに基づいてXからYのすべての値を更新します
- 8. スクリーンサイズに基づいてx、y座標を再計算する方法
- 9. simpleXML属性に基づいてノードを取得します
- 10. インデックスに基づいて配列アイテムを取得します
- 11. ThreadPool.GetMaxThreadsはmachine.configのprocessModelタグに基づいて値を取得しますか?
- 12. 美しいスープは、テキストに基づいてhrefを取得します
- 13. UIButtonはイベントを転送し、UIButtonに基づいて値を取得します
- 14. Y位置に基づいてMovieClipsの子インデックスを変更しますか?
- 15. GUIDに基づいてSharepointサイト名を取得するには?
- 16. xとyの座標に基づく並べ替え
- 17. Android Api 8.ビューからxとyを取得し、ボタンのxとyを設定します
- 18. OBJECT_IDに基づいてデータベースオブジェクトを取得する方法は?
- 19. 過去の日付に基づいてSQLレコードを取得しますか?
- 20. 日付と時刻に基づいてIMAPメールを取得しますか?
- 21. GUIDに基づいてサイトのURLを取得しますか? (SharePoint)
- 22. デルタx、yタッチまたはマウスの動きに基づいて回転度を計算する
- 23. MySQLは行データに基づいて結果カラムを取得します
- 24. クリックしたマウス位置に基づいてmschartからx値を取得する方法
- 25. Python:入力に基づいてリストから項目を取得
- 26. リレーションシップテーブル - CoreDataに基づいて親テーブルからレコードを取得
- 27. jQueryでx、yピクセルの色を取得
- 28. selectlyputに基づいてグラフのy変数を変更する
- 29. 2dの距離に基づいてJavaのハッシュマップから取得
- 30. Qt OpenGL-マウスクリックに基づいてオブジェクトを取得する方法
どうすればいいですか?私はそれらのことにあまり注意を払っていません。 – lilzz
@ user482473:upvoteするには、upvoteしたい答えの左にある投票数の上にある上矢印をクリックしてください。受け入れるには、白いダニの記号をクリックしてください - 緑色になり、答えが受け入れられたとマークされます。 – pt2ph8