Xmarin.Androidで開発したものをSwift版に焼き直そうとしています。
Swift自体が初めてで勉強しながらで色々と行き詰まっているのですが、
その中でも画像の扱い方がイマイチ理解ができていません。
基本的には画像のX,Y座標でピクセルを取得し、その色情報を取得し、
各画像処理をしているのですが、まずは二値化などの処理の際に
X,Yでピクセルを取得する方法が知りたいです。
以下にC#で書いた処理を記載します。
処理内容は簡単に言うと下記の通りです。
<特定の範囲内の画像を二値化する>
①引数のビットマップ画像を基に引数の指定された枠の範囲のみピクセル単位で取得
②ピクセルの色相を判断して二値化し、戻り値の画像を更新します。
Swiftで分からないところは、UIImageからピクセルの情報を取得し加工する方法がわかりません。
特にSwiftのバージョンにより方法が複数あるようで、その点も混乱している要因の一つです。
もし、ご存知の方がいらっしゃいましたら大変お手数ですがご教授よろしくお願いいたします。
C#
1 public static Bitmap Monocrome(Bitmap bitmap, Rect rect) 2 { 3 Bitmap outBitMap = bitmap.Copy(Bitmap.Config.Argb8888, true); 4 5 int x, y; 6 for (x = rect.Left; x <= rect.Right; x++) 7 { 8 for (y = rect.Top; y <= rect.Bottom; y++) 9 { 10 int pixelColor = outBitMap.GetPixel(x, y); 11 var c = new Color(pixelColor); 12 13 if(166 <= c.GetHue() && c.GetHue() <= 259) 14 { 15 c = Color.White; 16 } 17 else 18 { 19 c = Color.Black; 20 } 21 22 outBitMap.SetPixel(x, y, c); 23 } 24 } 25 26 return outBitMap; 27 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。