【问题标题】:Creating a TGA using CGImageDestinationCreateWithData使用 CGImageDestinationCreateWithData 创建 TGA
【发布时间】:2013-04-11 10:08:13
【问题描述】:

我正在尝试保存 TGA 图像。我将数据作为CGImageRef 获取并使用CFDataCreateMutable 获取CFMutableDataRef,但我不确定使用哪个类型参数调用CGImageDestinationCreateWithData。查看 UTType 参考,这些是它所说的核心图形支持的类型:

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?我应该把它变成中间格式,然后自己进行转换吗?

【问题讨论】:

    标签: c++ core-graphics core-foundation tga


    【解决方案1】:

    事实证明,这些 UTI 可以从字符串中创建。因此,TGA UTI 的代码将是:

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

    ...代替kUTTypeImage

    【讨论】:

    • 所有 UTI 都是字符串。除其他外,您只需要 UTI 特定的功能进行比较。此外,该函数创建一个字符串,而不是专门的 UTI(没有“创建 UTI”函数);由于您有一个常量字符串,因此您可以使用 CFSTR 宏更轻松地创建该 CFString。
    猜你喜欢
    • 2018-01-07
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    相关资源
    最近更新 更多