非常に奇妙な動作ですが、できる限り問題を絞り込んだと思います
私は を持っています。NSImage
それを と呼びましょうinputImage
。それが重要な場合、それは a の aNSBitmapImageRep
で表されますCGColorSpaceCreateDeviceGray
そこから を作成したいのですCGImageRef
が、色が反転しています。
NSData *data = [inputImage TIFFRepresentation];
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
NSBitmapImageRep *maskedRep = (NSBitmapImageRep*)[inputImage representations][0];
CGFloat decode[] = {0.0, 1.0};
maskRef = CGImageMaskCreate(maskedRep.pixelsWide,
maskedRep.pixelsHigh,
8,
maskedRep.bitsPerPixel,
maskedRep.bytesPerRow,
provider,
decode,
false);
NSImage *testImage = [[NSImage alloc] initWithCGImage:maskRef size:NSMakeSize(1280,1185)]; //the size of the image, hard-coded for testing
NSLog(@"testimage: %@", testImage);
問題は、私が見るとtestImage
、すべてのピクセルが元の画像からわずかに右にずれていることです。
画像を保存すると見やすくなりますが、すべての画像testImage
が約 5 ピクセルほど右にオフセットされていることがわかります。黒いコンテンツの左側に白いギャップが表示されます。testImage
5 行のコードのどこかで、どういうわけか画像を移動しています。これがどのように起こっているのか、誰にも分かりますか?現在疑っているTIFFRepresentation