From 2ffdee9f310c4a1c854fa50fc0266e69099d827c Mon Sep 17 00:00:00 2001 From: nixzhu Date: Thu, 14 May 2015 03:32:54 +0800 Subject: [PATCH] fix renderAtSize (no retina before) --- Yep/Extensions/UIImage+Yep.swift | 33 ++++++++---------- .../Contents.json | 2 +- .../left_tail_image_bubble.pdf | Bin 6918 -> 5735 bytes 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Yep/Extensions/UIImage+Yep.swift b/Yep/Extensions/UIImage+Yep.swift index 6aee8d66..cf2faa8a 100644 --- a/Yep/Extensions/UIImage+Yep.swift +++ b/Yep/Extensions/UIImage+Yep.swift @@ -300,15 +300,12 @@ extension UIImage { extension UIImage { func renderAtSize(size: CGSize) -> UIImage { - UIGraphicsBeginImageContext(size) - //let scale: CGFloat = self.scale - - //UIGraphicsBeginImageContextWithOptions(self.size, false, scale) + UIGraphicsBeginImageContextWithOptions(size, false, 0) // key let context = UIGraphicsGetCurrentContext() - self.drawInRect(CGRect(origin: CGPointZero, size: size)) + drawInRect(CGRect(origin: CGPointZero, size: size)) let cgImage = CGBitmapContextCreateImage(context) @@ -319,9 +316,7 @@ extension UIImage { return image } - func maskWithImage(maskImage: UIImage) -> UIImage { - //UIGraphicsBeginImageContext(size) let scale = UIScreen.mainScreen().scale UIGraphicsBeginImageContextWithOptions(self.size, false, scale) @@ -332,6 +327,9 @@ extension UIImage { transform = CGAffineTransformConcat(transform, CGAffineTransformMakeTranslation(0.0, self.size.height)) CGContextConcatCTM(context, transform) +// CGContextSetAllowsAntialiasing(context, true) +// CGContextSetShouldAntialias(context, true) + let drawRect = CGRect(origin: CGPointZero, size: self.size) CGContextClipToMask(context, drawRect, maskImage.CGImage) @@ -341,7 +339,7 @@ extension UIImage { let roundImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() - + return roundImage } @@ -350,7 +348,7 @@ extension UIImage { let scale = UIScreen.mainScreen().scale let orientation: UIImageOrientation = tailDirection == .Left ? .Up : .UpMirrored var maskImage = UIImage(CGImage: UIImage(named: "left_tail_image_bubble")!.CGImage, scale: scale, orientation: orientation)! - maskImage = maskImage.resizableImageWithCapInsets(UIEdgeInsets(top: 25, left: 26, bottom: 20, right: 20), resizingMode: UIImageResizingMode.Stretch) + maskImage = maskImage.resizableImageWithCapInsets(UIEdgeInsets(top: 25, left: 27, bottom: 20, right: 20), resizingMode: UIImageResizingMode.Stretch) maskImage = maskImage.renderAtSize(size) let bubbleImage = self.fixRotation().cropToAspectRatio(size.width / size.height).resizeToTargetSize(size).maskWithImage(maskImage) @@ -359,15 +357,15 @@ extension UIImage { } // func maskWithImage(maskImage: UIImage) -> UIImage { -// //UIGraphicsBeginImageContext(size) -// +// +// let scale = UIScreen.mainScreen().scale +// // let colorSpace = CGColorSpaceCreateDeviceRGB() // let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue) -// let context = CGBitmapContextCreate(nil, Int(maskImage.size.width), Int(maskImage.size.height), 8, 0, colorSpace, bitmapInfo) +// let context = CGBitmapContextCreate(nil, Int(maskImage.size.width * scale), Int(maskImage.size.height * scale), 8, 0, colorSpace, bitmapInfo) // -//// var transform = CGAffineTransformConcat(CGAffineTransformIdentity, CGAffineTransformMakeScale(1.0, -1.0)) -//// transform = CGAffineTransformConcat(transform, CGAffineTransformMakeTranslation(0.0, self.size.height)) -//// CGContextConcatCTM(context, transform) +// CGContextSetAllowsAntialiasing(context, true) +// CGContextSetShouldAntialias(context, true) // // let drawRect = CGRect(origin: CGPointZero, size: self.size) // @@ -376,9 +374,8 @@ extension UIImage { // CGContextDrawImage(context, drawRect, self.CGImage) // // let cgImage = CGBitmapContextCreateImage(context)! +// let roundImage = UIImage(CGImage: cgImage)! // -// //UIGraphicsEndImageContext() -// -// return UIImage(CGImage: cgImage)! +// return roundImage // } } diff --git a/Yep/Images.xcassets/left_tail_image_bubble.imageset/Contents.json b/Yep/Images.xcassets/left_tail_image_bubble.imageset/Contents.json index f8f69a16..a442e89c 100644 --- a/Yep/Images.xcassets/left_tail_image_bubble.imageset/Contents.json +++ b/Yep/Images.xcassets/left_tail_image_bubble.imageset/Contents.json @@ -14,7 +14,7 @@ "bottom" : 20, "top" : 25, "right" : 20, - "left" : 26 + "left" : 27 } } } diff --git a/Yep/Images.xcassets/left_tail_image_bubble.imageset/left_tail_image_bubble.pdf b/Yep/Images.xcassets/left_tail_image_bubble.imageset/left_tail_image_bubble.pdf index 906e35d113767e12f19b048a4151207c050dccb8..29e55f9919491f382329f873c0b288ccfd53987f 100644 GIT binary patch delta 1016 zcmZoOd#*DfpguQnW1h1i$DRA(2H{*^Zzdd$D?LAj|HPz+d&7SIU;02JZ)uu!U$gZa z>$xxemdAO-zF5FEH)H+_6REeGe>-fqKXqEV_F_VyNof;D^xJK+PwoWn;&PN;Eu!3V zCgEU<|J$6sUOg^_y>XpZHJk2mvXv#I>^!)6dJwC)?}i!A-sH`zm!21+8^hHQ^Z7|n z?9pwd^$y0>4|RIF3?DV5-BI?7 za=URafph7GwnC*1TXu1_S5?ey377vbZ~A4s_#4O1{P*nnFB~_YThEZbJGzZ4H7}*O zq$o8p7sSd>%HlFrFi>CzF^r5&CMPoW2}bxQWu+#UDA?F2=)2__Dwt1pXI{@}Fu8(N zb+QbLBBSzTI~HB$rD7W==dlFq7%3PU0!;`~u(Jaqn4yM7KrxV^AVYjo^U_N)6by|g z?-O#|ti|EV#b`XaKuE+2q!FYjT0!5_+1V+vI5kB9tTRX<7H*OW7L!aj?-R;o;Q=`v zq~FlM#C&qKkQ}4Q>bjdShb)bU6bPQ%o~VL9PJ-By%kcG1XZZ z1H%(lor#4BF!)f#jLnSAKw|YM23i7n7zz!60gSHM9K&K03rvrjSejv2Y-(VH>=90| z(WVB#(8!dM<~Foc&=1PbFHr!-UcZz?yrD&^QDSOxqGh6~QF4lYpd?vbl2}wyQIwj-Wol??!KJF|>hHz{02?DLg8%>k delta 1978 zcmah|dpuNW7|u+Tp+PRmZBLk7V&+`toS6yZG7P$)38kVYX1a)BX2fRgBwhWawi89s zWi!9fR&rUFTp~85exWuIk=kz3O>0x_?u^B{^xOUZIp2BS_j}&=d*0`JYPTCZ=qG!X zR*`B9X?nybsJ@&g_oxhT@Y*ibnDcSF{Uvorb%WK92PHNa%#u(8pSeJkMKqI>yyEFl zhS{?WawG3tBKB@}$BUN0J$=txvO`w*F8=MF)&LIgv1SJz(k?CaZ{numZF)rS0h1(q zORohyZCBGHrIvHvkgx-B!U9jz&JdYba+H2!Im-KxA?NaqV<7V?@lQD~=4@*UDhYHS zK%4?g8~mC+6jBdmsTL1yl;2HFp;7?vcuoC??gS_PTpc9OG1ZViJ?<3KpKRwNZczEI zXXn-;%gm)A$<(ALduz*Qle;o%uHCv@>=J`ko7%oR5$Vp@Y-Hjb;r5NJIZ5`B7FNIR z)SuNhXMTKWIk4;MXW+)Zs@Asy=F)||enSo?p8YX5QABeIe4UoVsR$vpl&m>;?NFs< z_k$q1`pLi<1czjey$+hO+KV%LjTjLoTWp~l*_FS6n##fd79 z@@Gj^V;t6*V4y{1*Un}p@QiXqrq8wN3r`I0Zc9(FJ(_BEzHlW|zDD=iE6||ie)$%8 z-G|(MeqZzcTNhhmo9=wB%%Bpg&{nLpv#kql&3$}y{fe8Kcl+Vi++Kg3y5qvl{X)O` z(pA6Td7Ykdx~`&0+N{;Ttz*f}km`GX*{75r%MBL}&6t_F;R{I+877g61^WC52525}QqSd5zEl7>Is!CLi6Tf>21#r--lJkj zq;VtgNTLC*M#xe@@iPRj3I~5luqTEXT*Qru%k9RKvDu?#A!wwol5~k6a)Wdu0KvEs zA(Q|i`1b_LFc(D@fmiqtT{S&EeIecRGK|mOnnl=0UG#(2UTrNM%ah%MWoGaVbL+s& zvfjbBRn6I5XC=9r`FMJ5dS-LR@nehfcNGcGd!*LwMDjz_t)ixZHRrp7c924JDsOdyX0nDxT~s#Y)hVHxSNTubA8H#v}HL4 zm)-Z*7t`JxAV&mj6ebQ9nWs!6r{8wrFKu@)y4Eo3iTfhGj!W%3LUqnZ?Z?H9>g0?4 z*}Jh_i%lsg`fP|O?MaE=6f=J z);43;fVO(&X1ioqkk8YldDq(uOYHBeJ+feDwab z&qT@Ga6elv8r{&+G^^b1&V?^K-tRP$>$b(7S$Q^BlY3;>s^aNKgDN5l=0EA%UC-&L zEz2mWd4cCeM|5_mJ& zm2OpXh&AOuD*42BhVQZ68J6az7cF&RTyOgf&eN0BKulVc!5 z+0G;mCOU-!f>6b+Cgwp9Lm~7;jLtw5;!VUL_#aF*zEOyYOlclsqEj&zst|r6Aj{lni1S`ESk@CgTII%!T!VnN5 KQ79h1T+-if0I@0n