2013-04-11 19 views
0

我试图保存TGA图像。我有数据作为CGImageRef和使用CFDataCreateMutable得到CFMutableDataRef,但我不知道用什么类型的参数调用CGImageDestinationCreateWithData。纵观UTType参考,这些都是它说的类型是由核心图形支持:使用CGImageDestinationCreateWithData创建TGA

const CFStringRef kUTTypeImage; 
const CFStringRef kUTTypeJPEG; 
const CFStringRef kUTTypeJPEG2000; 
const CFStringRef kUTTypeTIFF; 
const CFStringRef kUTTypePICT; 
const CFStringRef kUTTypeGIF; 
const CFStringRef kUTTypePNG; 
const CFStringRef kUTTypeQuickTimeImage; 
const CFStringRef kUTTypeAppleICNS 
const CFStringRef kUTTypeBMP; 
const CFStringRef kUTTypeICO; 

我会用kUTTypeImage?如果是这样,我如何让它知道我想将它编码为TGA?我是否应该将其转换为中间格式,然后自己进行转换?

回答

0

事实证明,这些UTI可以从一个字符串创建。所以,对于TGA UTI的代码将是:

CFStringCreateWithCString(kCFAllocatorDefault, "com.truevision.tga-image", kCFStringEncodingASCII); 

...到位kUTTypeImage

+0

所有尿路感染的都是字符串。除了别的以外,您只需要UTI特定的功能进行比较。此外,该函数创建一个字符串,而不是专门的UTI(没有“创建UTI”函数);既然你有一个常量字符串,你可以用'CFSTR'宏更容易地创建CFString。 – 2013-04-12 01:01:47