1.切割圆角图片

    // 性能不好,适合圆角图形数量比较少的情况
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(, , , )];
//设置圆角
imageView.layer.cornerRadius = imageView.frame.size.width / ;
//将多余的部分切掉
imageView.layer.masksToBounds = YES;
// 设置圆形图片(放到分类中使用)
- (UIImage *)circularImage {
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
// 获取上下文
CGContextRef ctr = UIGraphicsGetCurrentContext();
// 设置圆形
CGRect rect = CGRectMake(, , self.size.width, self.size.height);
CGContextAddEllipseInRect(ctr, rect);
// 裁剪
CGContextClip(ctr);
// 将图片画上去
[self drawInRect:rect];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
// 圆角图片
- (UIImage *)cornerRoundedImage { //进行画图
UIGraphicsBeginImageContextWithOptions(self.size, NO, [UIScreen mainScreen].scale);
//使用贝塞尔曲线画出一个圆角图,圆角半径为12
CGRect rect = CGRectMake(, , self.size.width, self.size.height);
[[UIBezierPath bezierPathWithRoundedRect:rect
cornerRadius:] addClip];
[self drawInRect:rect]; UIImage* image = UIGraphicsGetImageFromCurrentImageContext();
//结束画图
UIGraphicsEndImageContext();
return image; }

2.图片文件格式判断

//通过图片Data数据第一个字节 来获取图片扩展名
- (NSString *)contentTypeForImageData:(NSData *)data {
uint8_t c;
[data getBytes:&c length:];
switch (c) {
case 0xFF:
return @"jpeg";
case 0x89:
return @"png";
case 0x47:
return @"gif";
case 0x49:
case 0x4D:
return @"tiff";
case 0x52:
if ([data length] < ) {
return nil;
}
NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(, )] encoding:NSASCIIStringEncoding];
if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
return @"webp";
}
return nil;
}
return nil;
} NSString *path = @"http://xxx.xxx.xxx/xxx.png";
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
//调用
NSString *string = [self contentTypeForImageData:data];
//输出结果为 png
NSLog(@"%@",string);

最新文章

  1. win10更新系统后wifi连接不上了怎么解决?
  2. php-into 安装时遇到的各种问题,php -m跟phpinfo()显示不一致
  3. CKEditor的使用-编辑文本
  4. Struts2的标签库(二)——OGNL表达式
  5. Xcode Snippets
  6. Oracle 创建和使用视图
  7. How to install Hadoop
  8. php生成员工编号,产品编号
  9. sqlserver 操作技巧
  10. macOS10.12部署sonarqube5.6.3 + mysql5.7.17
  11. Hibernate级联操作解密(inverse和cascade)
  12. [Swift]LeetCode309. 最佳买卖股票时机含冷冻期 | Best Time to Buy and Sell Stock with Cooldown
  13. 获取高精度时间注意事项 (QueryPerformanceCounter , QueryPerformanceFrequency)
  14. webpack打包 基础
  15. Server Memory Server Configuration Options 服务器内存服务配置选项
  16. day20kafka
  17. node 跨域
  18. 百科知识 英特尔处理器I5 4460和4590有哪些区别
  19. Xcode: Show Bounds Rectangles for UIView in Interface Builder
  20. HDU 2087 - 剪花布条 - [KMP算法]

热门文章

  1. EBS提交请求出现REP-3000错误
  2. iOS 用户的隐私数据-privacy-sensitive data
  3. Linux下的压缩和解压缩命令——tar
  4. [java]OutOfMemoryError 原因及解决办法
  5. 使用getParts()上传多个文件
  6. asp.net 网页中播放 flash 和flv
  7. 解决java.lang.NoClassDefFoundError: org/objectweb/asm/util/TraceClassVisitor
  8. vue2.0环境搭建
  9. linux学习日记之鸟哥
  10. JS中,!=, !== 和 !的区别和使用场景