0
純粋なJXA-ObjCアプローチを作成して画像パスからピクセルカラーを取得しようとしています。私が現在持っているものは次のとおりです。img.lockFocusはObjCブリッジ経由でアクセスできませんか?
ObjC.import('Foundation')
ObjC.import('AppKit')
var c_filePath = $(picturePath)
var c_img = $.NSImage.alloc.initWithContentsOfFile(c_filePath)
if(c_img==$()){
return []
}
var c_point = $.NSMakePoint(x,y)
c_img.lockFocus() //Error - Undefined is not a function...?
var c_color = NSReadPixel(c_point)
c_img.unlockFocus() //Error - Undefined is not a function...?
c_img.release()
var r; var g; var b; var a
c_img.getRegGreenBlueAlpha($(r),$(g),$(b),$(a))
r = ObjC.unwrap(r)
g = ObjC.unwrap(g)
b = ObjC.unwrap(b)
a = ObjC.unwrap(a)
このコードは、大きくthe code found hereに基づいています。
ただし、上記のように、c_img.lockFocus()はJXAでは定義されていません。奇妙なことに、私はc_img.lockFocusFlipped()へのアクセス権を得ることができますが、これを使用する方法やlockFocus()と同じ目的で使用できるかどうかはわかりません。
ここに明らかな問題はありますか?または画像のピクセルの色を取得するより良い方法はありますか?
ご協力いただければ幸いです。