你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> ios開發為圖片添加中文水印的例子

ios開發為圖片添加中文水印的例子

編輯:IOS7技巧
下面我們來看一個關於ios開發為圖片添加中文水印的例子,希望本例子給各位同學帶來一些幫助哦。

先看一個效果圖。

WaterMask

 看似簡單,其實不然。下面我就跟大家分享下我做這個demo中遇到的一些坑,相信對於和我一樣的IOS開發初學者一定會有幫助。

首先,我最初采用的一種方式,是使用 CGBitmapContextCreate 創建 context ,然後使用 CGContextSelectFont 設置字體和字號,最後使用 CGContextShowTextAtPoint 將水印合成到上下文,再調用 CGBitmapContextCreateImage(context) 生成新的圖片。這一切看似順理成章,最終效果也確實實現了,但是當我輸入中文的時候,問題出現了,不用多說大家應該已經才到了,令人頭痛的亂碼出現了。於是我開始改編碼,改字體,各種改,最終還是無果。無奈又開始翻查各種資料,最終讓我發現原來 CGContextShowTextAtPoint 方法本就不支持中文輸出。至此,本以為已經大功告成,卻不得不從頭再來!

既然上面的方法已經不能得到我想要的結果,我也只好另尋他法。不得不說如今的互聯網真的非常強大,很快我就搜索到了另外的實現方式,於是我又開始動起手來。這次的實現方式是:首先使用 UIGraphicsBeginImageContext(CGSize) 創建圖片上下文,然後:

 代碼如下 復制代碼


[UIImage drawInRect:CGRect];

繪制主圖片,接著:

 

 代碼如下 復制代碼 [NSString drawInRect:CGRect withFont:UIFont];


繪制水印文字,在這裡還可以使用:

 代碼如下 復制代碼

[[UIColor redColor] set];

設置水印文字 顏色,如果想繪制圖片水印,這裡改用前面繪制主圖的方式有效。接下來使用:

 代碼如下 復制代碼

Objective-C
UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

 生成新圖片,關閉上下文。皇天不負有心人,這次終於一切正常了。下面貼一下主要代碼:

 代碼如下 復制代碼

Objective-C
- (UIImage *) addText:(UIImage *)img text:(NSString *)mark {
    int w = img.size.width;
    int h = img.size.height;
    UIGraphicsBeginImageContext(img.size);
    [[UIColor redColor] set];
    [img drawInRect:CGRectMake(0, 0, w, h)];
    [mark drawInRect:CGRectMake(10, 55, 130, 80) withFont:[UIFont systemFontOfSize:18]];
    UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return aimg;

}

好了,本文到此先告一段落,歡迎大家多多評論,多多交流!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved