MCPcopy Create free account
hub / github.com/cinder/Cinder / setupImageDestOptions

Method setupImageDestOptions

src/cinder/ImageTargetFileQuartz.cpp:105–120  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103} // anonymous namespace
104
105void ImageTargetFileQuartz::setupImageDestOptions( ImageTarget::Options options )
106{
107 int bitsPerComponent = ImageIo::dataTypeBytes( getDataType() ) * 8;
108
109 // setup the dictionary of options for CGImageDestinationAddImage
110 mImageDestOptions = std::shared_ptr<__CFDictionary>( ::CFDictionaryCreateMutable( kCFAllocatorDefault, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks ), cocoa::safeCfRelease );
111 ::CFDictionarySetValue( mImageDestOptions.get(), kCGImagePropertyIsFloat, ( getDataType() == ImageIo::FLOAT32 ) ? kCFBooleanTrue : kCFBooleanFalse );
112 ::CFDictionarySetValue( mImageDestOptions.get(), kCGImagePropertyHasAlpha, ( hasAlpha() ) ? kCFBooleanTrue : kCFBooleanFalse );
113 ::CFNumberRef depthNumber = ::CFNumberCreate( kCFAllocatorDefault, kCFNumberIntType, &bitsPerComponent );
114 ::CFDictionarySetValue( mImageDestOptions.get(), kCGImagePropertyDepth, depthNumber );
115 ::CFRelease( depthNumber );
116 float qualityValue = options.getQuality();
117 ::CFNumberRef qualityNumber = ::CFNumberCreate( kCFAllocatorDefault, kCFNumberFloatType, &qualityValue );
118 ::CFDictionarySetValue( mImageDestOptions.get(), kCGImageDestinationLossyCompressionQuality, qualityNumber );
119 ::CFRelease( qualityNumber );
120}
121
122ImageTargetFileQuartz::ImageTargetFileQuartz( DataTargetRef dataTarget, ImageSourceRef imageSource, ImageTarget::Options options, const std::string &extensionData )
123 : cocoa::ImageTargetCgImage( imageSource, options )

Callers

nothing calls this directly

Calls 4

getDataTypeFunction · 0.50
hasAlphaFunction · 0.50
getMethod · 0.45
getQualityMethod · 0.45

Tested by

no test coverage detected