用UIGraphics進(jìn)行2D圖像渲染 不要用UIGraphicsBeginImageContext(size); 不然圖片會(huì)模糊

用UIGraphics進(jìn)行2D圖像渲染 不要用UIGraphicsBeginImageContext(size); 不然圖片會(huì)模糊

Core Graphics API所有的操作都在一個(gè)上下文中進(jìn)行。所以在繪圖之前需要獲取該上下文并傳入執(zhí)行渲染的函數(shù)中。如果你正在渲染一副在內(nèi)存中的圖片,此時(shí)就需要傳入圖片所屬的上下文。獲得一個(gè)圖形上下文是我們完成繪圖任務(wù)的第一步,你可以將圖形上下文理解為一塊畫布。如果你沒有得到這塊畫布,那么你就無法完成任何繪圖操作。當(dāng)然,有許多方式獲得一個(gè)圖形上下文,這里我介紹兩種最為常用的獲取方法。

調(diào)用UIGraphicsBeginImageContextWithOptions函數(shù)就可獲得用來處理圖片的圖形上下文。利用該上下文,你就可以在其上進(jìn)行繪圖,并生成圖片。調(diào)用UIGraphicsGetImageFromCurrentImageContext函數(shù)可從當(dāng)前上下文中獲取一個(gè)UIImage對(duì)象。記住在你所有的繪圖操作后別忘了調(diào)用UIGraphicsEndImageContext函數(shù)關(guān)閉圖形上下文。

上代碼:

- ( UIImage *)createShareImage:( NSString *)str name:( NSString *)name number:( NSString *)number grade:( NSString *)grade

{

UIImage *image = [ UIImage imageNamed : @"shareGrade" ];

CGSize size= CGSizeMake (image. size . width , image. size . height ); // 畫布大小

UIGraphicsBeginImageContextWithOptions (size, NO , 0.0 );

[image drawAtPoint : CGPointMake ( 0 , 0 )];

// 獲得一個(gè)位圖圖形上下文

CGContextRef context= UIGraphicsGetCurrentContext ();

CGContextDrawPath (context, kCGPathStroke );

// 畫 打敗了多少用戶

[str drawAtPoint : CGPointMake ( 30 , image. size . height * 0.65 ) withAttributes : @{ NSFontAttributeName :[ UIFont fontWithName : @"Arial-BoldMT" size : 30 ], NSForegroundColorAttributeName :[ UIColor whiteColor ] } ];

//畫自己想畫的內(nèi)容。。。。。

// 返回繪制的新圖形

UIImage *newImage= UIGraphicsGetImageFromCurrentImageContext ();

UIGraphicsEndImageContext ();

return newImage;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • --繪圖與濾鏡全面解析 概述 在iOS中可以很容易的開發(fā)出絢麗的界面效果,一方面得益于成功系統(tǒng)的設(shè)計(jì),另一方面得益...
    韓七夏閱讀 2,961評(píng)論 2 10
  • 原文地址:http://www.cocoachina.com/industry/20140115/7703.htm...
    默默_David閱讀 6,245評(píng)論 0 1
  • Quartz2D以及drawRect的重繪機(jī)制字?jǐn)?shù)1487 閱讀21 評(píng)論1 喜歡1一、什么是Quartz2D Q...
    PurpleWind閱讀 906評(píng)論 0 3
  • 小米的用戶有多層,從工程師到內(nèi)測組會(huì)員,再到普通用戶。其中只有少數(shù)的內(nèi)測組會(huì)員參與感爆棚,而千萬普通用戶根本沒fe...
    翳子閱讀 270評(píng)論 1 3
  • 有時(shí)候就是太愛。 在你面前就像小孩子 口無遮攔。 犯過很多錯(cuò)誤。 忍不住想和你分享所有的事物。想把一切都告訴你 包...
    TCHIIAN閱讀 251評(píng)論 0 0

友情鏈接更多精彩內(nèi)容