Windows BMPへの変換
Mac OS X 10.5.1、Cocoaでプログラミングしています。
TIFFの画像データをWindows BMPに変換する必要があるのですが、白黒1ビットの画像データだと変換に失敗してしまいます。
プログラムは下記のようになっています。
(テスト用に作成したプログラムです。)
int main(int argc, char *argv[])
{
NSData *dataTiff = [NSData dataWithContentsOfFile:@"/Users/tanaka/tifffile.tif"];
if (dataTiff == nil)
return 0;
NSBitmapImageRep *bmpRep = [NSBitmapImageRep imageRepWithData:dataTiff];
if (bmpRep == nil)
return 0;
NSData *dataBmp = [bmpRep representationUsingType:NSBMPFileType properties:nil];
if (dataBmp == nil)
return 0;
[dataBmp writeToFile:@"/Users/tanaka/winbmp.bmp" atomically:YES];
return 0;
}
dataBmpがnilになってしまいます。
白黒1ビットでなく256色やフルカラーなら大丈夫です。
Mac OS X 10.4.xでは正常に行えます。
Mac OS X 10.5からAPIの動作が変わったようです。
(G4とIntelマシンの両方で試しましたが同じでした。)
テスト用のTIFFファイルは
http://www.geocities.jp/an23052/tifffile.tif
これは変換に失敗するTIFFファイル(白黒1ビット)です。
下記の8ビットTIFFならOKです。
http://www.geocities.jp/an23052/tifffileok.tif
どこが悪いかお解りでしたら、よろしくお願い申し上げます。