2019-12-26 15:55:27 +04:00

33 lines
1.2 KiB
Objective-C

#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