1234567891011121314151617181920212223242526272829303132 |
- #import "SVGKExporterNSData.h"
- #import "SVGKImage+CGContext.h" // needed for Context calls
- @implementation SVGKExporterNSData
- +(NSData*) exportAsNSData:(SVGKImage*) image
- {
- return [self exportAsNSData:image flipYaxis:FALSE];
- }
- +(NSData*) exportAsNSData:(SVGKImage*) image flipYaxis:(BOOL) flipYaxis
- {
- return [self exportAsNSData:image antiAliased:TRUE curveFlatnessFactor:1.0 interpolationQuality:kCGInterpolationDefault flipYaxis:flipYaxis];
- }
- +(NSData*) exportAsNSData:(SVGKImage*) image antiAliased:(BOOL) shouldAntialias curveFlatnessFactor:(CGFloat) multiplyFlatness interpolationQuality:(CGInterpolationQuality) interpolationQuality flipYaxis:(BOOL) flipYaxis
- {
- CGContextRef newContext = [image newCGContextAutosizedToFit];
-
- [image renderToContext:newContext antiAliased:shouldAntialias curveFlatnessFactor:multiplyFlatness interpolationQuality:interpolationQuality flipYaxis: flipYaxis];
-
- void* resultAsVoidStar = CGBitmapContextGetData(newContext);
-
- size_t dataSize = 4 * image.size.width * image.size.height; // RGBA = 4 8-bit components
- NSData* result = [NSData dataWithBytes:resultAsVoidStar length:dataSize];
-
- CGContextRelease(newContext);
-
- return result;
- }
- @end
|