直播带货平台源码,UIImage的剪切,尺寸缩小、压缩、添加水印
直播带货平台源码,UIImage的剪切,尺寸缩小、压缩、添加水印实现的相关代码
```handlebars UIImage *image = [UIImage imageNamed:@"portrait01.png"]; CGFloat width = image.size.width; CGFloat height = image.size.height; //加图片水印 UIImage *image01 = [self addToImage:image image:image withRect:CGRectMake(0, 20, 30, 30)]; UIImageView *imag = [[UIImageView alloc] initWithImage:image01]; imag.frame = CGRectMake(10, 100, width,height); [self.view addSubview:imag]; //剪切图片 UIImage *image1 =[self cutImage:image withRect:CGRectMake(10, 20, 60, 100)];// int w = image1.size.width; int h = image1.size.height; UIImage *image11 = [self addText:image1 text:@"剪切" withRect:CGRectMake(10,(h-30)/2, w, 30) ]; UIImageView *imag1 = [[UIImageView alloc] initWithImage:image11]; imag1.frame = CGRectMake(10, 210, image1.size.width,image1.size.height); [self.view addSubview:imag1]; //缩小图片 UIImage *image2 = [self scaleToSize:image size:CGSizeMake(image1.size.width, image1.size.height)]; UIImage *image22 = [self addText:image2 text:@"压缩" withRect:CGRectMake(10,(h-30)/2, w, 30) ]; UIImageView *imag2 = [[UIImageView alloc] initWithImage:image22]; imag2.frame = CGRectMake(10, 300, image2.size.width,image2.size.height); [self.view addSubview:imag2]; //压缩图片大小并保存 [self zipImageData:image]; } //压缩图片 - (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{ // 设置成为当前正在使用的context UIGraphicsBeginImageContext(size); // 绘制改变大小的图片 [img drawInRect:CGRectMake(0, 0, size.width, size.height)]; // 从当前context中创建一个改变大小后的图片 UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // 使当前的context出堆栈 UIGraphicsEndImageContext(); // 返回新的改变大小后的图片 return scaledImage; } //截图图片 - (UIImage *)cutImage:(UIImage *)image withRect:(CGRect )rect { CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect); UIImage * img = [UIImage imageWithCGImage:imageRef]; CGImageRelease(imageRef); return img; } //压缩图片大小 - (void)zipImageData:(UIImage *)image { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyyMMddHHSSS"]; NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]]; NSString *dateStr = [NSString stringWithFormat:@"%@.jpg",currentDateStr]; NSString *path = [NSTemporaryDirectory() stringByAppendingPathComponent:dateStr]; if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { NSError *error; [[NSFileManager defaultManager] removeItemAtPath:path error:&error]; } NSData *imgData = UIImageJPEGRepresentation(image, 1); if([imgData writeToFile:path atomically:YES]) { NSLog(@"saveSuccess"); } } //加文字水印 - (UIImage *) addText:(UIImage *)img text:(NSString *)mark withRect:(CGRect)rect { int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageContext(img.size); [[UIColor redColor] set]; [img drawInRect:CGRectMake(0, 0, w, h)]; if([[[UIDevice currentDevice]systemName]floatValue] >= 7.0) { NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:20.0f], NSFontAttributeName,[UIColor blueColor] ,NSForegroundColorAttributeName,nil]; [mark drawInRect:rect withAttributes:dic]; } else { //该方法在7.0及其以后都废弃了 [mark drawInRect:rect withFont:[UIFont systemFontOfSize:20]]; } UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return aimg; } //加图片水印 - (UIImage *) addToImage:(UIImage *)img image:(UIImage *)newImage withRect:(CGRect)rect { int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageContext(img.size); [img drawInRect:CGRectMake(0, 0, w, h)]; [newImage drawInRect:rect]; UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return aimg; } ```
以上就是直播带货平台源码,UIImage的剪切,尺寸缩小、压缩、添加水印实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现