comparison ios/dw.m @ 2438:f273dbf1312f

iOS: Fix DWImage internal core graphics context being flipped.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 07 Apr 2021 00:16:42 +0000
parents 929ce3cd18ea
children 070337dd4ef7
comparison
equal deleted inserted replaced
2437:929ce3cd18ea 2438:f273dbf1312f
1510 self = [super init]; 1510 self = [super init];
1511 if(self) 1511 if(self)
1512 { 1512 {
1513 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB(); 1513 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
1514 CGContextRef cgcontext = CGBitmapContextCreate(NULL, size.width, size.height, 8, 0, rgb, kCGImageAlphaPremultipliedFirst); 1514 CGContextRef cgcontext = CGBitmapContextCreate(NULL, size.width, size.height, 8, 0, rgb, kCGImageAlphaPremultipliedFirst);
1515 CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, size.height);
1516 CGContextConcatCTM(cgcontext, flipVertical);
1515 CGImageRef cgimage = CGBitmapContextCreateImage(cgcontext); 1517 CGImageRef cgimage = CGBitmapContextCreateImage(cgcontext);
1516 image = [UIImage imageWithCGImage:cgimage]; 1518 image = [UIImage imageWithCGImage:cgimage];
1517 CGContextRelease(cgcontext); 1519 CGContextRelease(cgcontext);
1518 [image retain]; 1520 [image retain];
1519 } 1521 }
1573 { 1575 {
1574 CGSize size = [image size]; 1576 CGSize size = [image size];
1575 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB(); 1577 CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
1576 1578
1577 cgcontext = CGBitmapContextCreate(NULL, size.width, size.height, 8, 0, rgb, kCGImageAlphaPremultipliedFirst); 1579 cgcontext = CGBitmapContextCreate(NULL, size.width, size.height, 8, 0, rgb, kCGImageAlphaPremultipliedFirst);
1580 CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, size.height);
1581 CGContextConcatCTM(cgcontext, flipVertical);
1578 CGContextDrawImage(cgcontext, CGRectMake(0,0,size.width,size.height), [image CGImage]); 1582 CGContextDrawImage(cgcontext, CGRectMake(0,0,size.width,size.height), [image CGImage]);
1579 } 1583 }
1580 return cgcontext; 1584 return cgcontext;
1581 } 1585 }
1582 -(void)dealloc { if(cgcontext) CGContextRelease(cgcontext); if(image) [image release]; [super dealloc]; } 1586 -(void)dealloc { if(cgcontext) CGContextRelease(cgcontext); if(image) [image release]; [super dealloc]; }