カラー画像のモノクロ化で苦戦中

カラーの画像をモノクロ二値に変換しようと思っているけど、なかなかうまくいきません。

以前ならGWorldをつかってCopyBitsでDitherCopyを使えば簡単にできていたと思うけど、もうCarbonは使えないし…

いろいろと調べていると画像をFAX用のデータに変換できる事を発見。

NSData *tiffData = [srcImage TIFFRepresentationUsingCompression:NSTIFFCompressionCCITTFAX3 factor:1.0];

NSImage *image = [[[NSImage alloc] initWithData:tiffData] autorelease];

とやってみたけどカラーのまま。

CoreImageのフィルターも試してみたけど、グレースケールまでしかできませんでした。

NSData *tiffData = [image TIFFRepresentation];
NSBitmapImageRep *bitmap = [NSBitmapImageRep imageRepWithData:tiffData];

CIImage *inputImage = [[CIImage alloc] initWithBitmapImageRep:bitmap];
CIColor *ciColor = [[CIColor alloc] initWithColor:[NSColor whiteColor]];
NSNumber *nsIntensity = @1.0f;

CIFilter *filter = [CIFilter filterWithName:@”CIColorMonochrome” keysAndValues:@”inputImage”, inputImage, @”inputColor”, ciColor, @”inputIntensity”, nsIntensity, nil];
CIImage *outputImage = [filter valueForKey:@”outputImage”];
NSBitmapImageRep *outBitmap = [[NSBitmapImageRep alloc] initWithCIImage:outputImage];
[outputImage release];
NSImage *outImage = [[NSImage alloc] initWithData:[outBitmap TIFFRepresentation]];

何かいい方法ないかな〜

 
カテゴリー: MacOS Apps, Off topic パーマリンク

コメントを残す