ここに私が思いついたのは、私のために働くようです。
- (NSString*) movieFrameAsString:(CGImageRef)targetMovieFrame
{
@try
{
ZXCGImageLuminanceSource* luminancesource = [[ZXCGImageLuminanceSource alloc] initWithCGImage:targetMovieFrame];
ZXHybridBinarizer* binarizerInput = [[ZXHybridBinarizer alloc] init];
[binarizerInput initWithSource:luminancesource];
ZXBinaryBitmap* binarybitmapInput = [[ZXBinaryBitmap alloc] initWithBinarizer:binarizerInput];
ZXDecodeHints* decodehints = [[ZXDecodeHints alloc] init];
ZXQRCodeReader* qrcodereader = [[ZXQRCodeReader alloc] init];
ZXResult* results = [qrcodereader decode:binarybitmapInput hints:decodehints];
[luminancesource release];
[binarizerInput release];
[binarybitmapInput release];
[decodehints release];
[qrcodereader release];
return [results text];
}
@catch (ZXReaderException* rex)
{
if (![rex.reason isEqualToString:@"Could not find three finder patterns"])
{
//NSLog(@"failed to decode, caught ReaderException '%@'", rex.reason);
}
}
@catch (ZXIllegalArgumentException* iex)
{
//NSLog(@"failed to decode, caught IllegalArgumentException '%@'", iex.reason);
}
@catch (id ue)
{
//NSLog(@"Caught unknown exception: %@", ue);
}
return 0;
}
targetMovieFrameが取り込まれ、フィルタのカクテルを通して実行され、バイナリイメージが生成されます。ヒントを使用してイメージをデコードし、QRCodeReaderオブジェクトに含まれるメソッドを使用して結果を生成します。それから、NSStringである結果を返します。それ以外のものは例外で捕まえられて返されます。
私はOSXのOBJCプロジェクトでもう少し運がいいですが、それでもまだ一緒に来ていません。私はこれを成功裏に完了した誰も見つけていない! – mxisaac
私はこの特定のフレームワークを使用していませんが、カメラ画像がUIImageに変換される点を見たいと思うかもしれません。 UIImageに起こったことは(大体)NSImageにも起こり得るので、これをMacOSX実装の飛び降り点として使うことができます。 – Philippe
Philさん、ありがとうございました。私は実際に問題を解決しましたが、今はきれいに機能しています。 – mxisaac