iOS之圖片裁剪、添加水印

圖片裁剪

第一種:獲取圖片原大小,按圖片原大小裁剪圖片(UIImage轉化為CGImageRef進行裁剪)

    //獲取圖片
    UIImage *image = [UIImage imageNamed:@"圖片名字"];
    //獲取圖片的大小
    CGSize size = image.size;
    //設置需要剪切的部分(按照原圖片的大小進行)
    CGRect rect = CGRectMake(0, 0, size.width / 5, size.height);
    //轉化為CGImageRef
    CGImageRef sourceImageRef = [image CGImage];
    //進行裁剪
    CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, rect);
    //轉化為UIImage
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];
    
    //釋放內存
    CGImageRelease(newImageRef);
    
    UIImageView *imageView = [[UIImageView alloc] init];
    imageView.frame = CGRectMake(10, 20, 300, 300);
    imageView.image = newImage;
    
    [self.view addSubview:imageView];

第二種:使用CALayer屬性對圖片進行裁剪(示例:把一張圖片裁剪成了九張)

int width = 80;
    int height = 100;
    
    int sapce = 1;
    
    for(int i = 0; i < 9; i++)
    {
        UIView *view = [[UIView alloc] init];
        view.frame = CGRectMake(60 + (width + sapce) * (i%3), 80 + (height + sapce) * (i/3), width, height);
        view.backgroundColor = [UIColor redColor];
        //設置層的內容
        view.layer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"圖片名字"].CGImage);
        //設置圖片剪切的范圍  [0,1]
        view.layer.contentsRect = CGRectMake(1.0/3.0 * (i%3), 1.0/3.0 * (i/3), 1.0/3.0, 1.0/3.0);
        [self.view addSubview:view];
        
    }

圖片添加水印

創(chuàng)建一個類別會方便使用
下面是圖片添加水印的方法,使用的是圖片上下文來實現(xiàn)的,這是在類別的.m文件中。

#import "UIImage+Watermark.h"

//設置水印字體大小
#define kFontSize 17
//設置水印字體顏色
#define kFontColor greenColor

@implementation UIImage (Watermark)

- (UIImage *)watermarkWithText:(NSString *)text
{
    //開啟圖片上下文
    UIGraphicsBeginImageContextWithOptions(self.size, YES, 0);
    [self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
    //設置水印
    NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
    paragraph.alignment = NSTextAlignmentRight;
    [text drawInRect:CGRectMake( 0, self.size.height - 30, self.size.width - 10, 30) withAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kFontSize],NSParagraphStyleAttributeName:paragraph,NSForegroundColorAttributeName:[UIColor kFontColor]}];
    //獲取圖片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    //結束上下文
    UIGraphicsEndImageContext();
    
    return image;
    
}

@end

寫完后只要寫一行代碼就可以實現(xiàn)水印的添加,如:

UIImageView *imageView = [[UIImageView alloc] init];
    imageView.frame = self.view.bounds;
    UIImage *image = [UIImage imageNamed:@"圖片名字"];
    
    //添加水印
    UIImage *newImage = [image watermarkWithText:@"ssssss水印"];
    
    imageView.image = newImage;
    
    [self.view addSubview:imageView];

注意:水印添加時,是按圖片的大小進行的,所以圖片太大,顯示的水印會變的很小,圖片很小,顯示出來的水印會變的很大,所以需要自己調整。

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容