直播带货平台源码,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的剪切,尺寸缩小、压缩、添加水印实现的相关代码, 更多内容欢迎关注之后的文章

posted @   云豹科技-苏凌霄  阅读(167)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示