UIImage+Extension.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. //
  2. // UIImage+Extension.h
  3. // MIT_Endorsement
  4. //
  5. // Created by 翟玉磊 on 2017/12/15.
  6. // Copyright © 2017年 翟玉磊. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. typedef NS_ENUM(NSUInteger, GradientType) {
  10. GradientTypeTopToBottom = 0,//从上到下
  11. GradientTypeLeftToRight = 1,//从左到右
  12. GradientTypeUpleftToLowright = 2,//左上到右下
  13. GradientTypeUprightToLowleft = 3,//右上到左下
  14. };
  15. @interface UIImage (Extension)
  16. /**
  17. * 根据图片名返回一张能够自由拉伸的图片 (从中间拉伸)
  18. */
  19. + (UIImage *)resizableImage:(NSString *)imgName;
  20. /**
  21. * 根据图片名返回一张能够自由拉伸的图片
  22. */
  23. + (UIImage *)resizableImage:(NSString *)imgName xPos:(CGFloat)xPos yPos:(CGFloat)yPos;
  24. /**
  25. * 获取视频第一帧图片
  26. */
  27. + (UIImage *)getVideoFirstThumbnailImageWithVideoUrl:(NSURL *)videoUrl;
  28. /**
  29. * 根据url获取第一帧图片,获取任一帧图片
  30. */
  31. + (UIImage *)thumbnailImageForVideo:(NSURL *)videoURL atTime:(NSTimeInterval)time;
  32. /**
  33. * 图片不被渲染
  34. *
  35. */
  36. + (UIImage *)imageAlwaysShowOriginalImageWithImageName:(NSString *)imageName;
  37. /**
  38. * 根据图片和颜色返回一张加深颜色以后的图片
  39. * 图片着色
  40. */
  41. + (UIImage *)colorizeImageWithSourceImage:(UIImage *)sourceImage color:(UIColor *)color;
  42. /**
  43. * 根据指定的图片颜色和图片大小获取指定的Image
  44. *
  45. * @param color 颜色
  46. * @param size 大小
  47. *
  48. */
  49. + (UIImage *)getImageWithColor:(UIColor *)color size:(CGSize)size;
  50. /**
  51. * 通过传入一个图片对象获取一张缩略图
  52. */
  53. + (UIImage *)getThumbnailImageWithImageObj:(id)imageObj;
  54. /**
  55. * 通过传入一个图片对象获取一张原始图
  56. */
  57. + (UIImage *)getOriginalImageWithImageObj:(id)imageObj;
  58. /** 设置图片的渐变色(颜色->图片)
  59. @param colors 渐变颜色数组 @param gradientType 渐变样式 @param imgSize 图片大小 @return 颜色->图片 */
  60. + (UIImage *)gradientColorImageFromColors:(NSArray*)colors gradientType:(GradientType)gradientType imgSize:(CGSize)imgSize;
  61. /// 常用红色渐变图片
  62. + (UIImage *)commonRedGradientColorImageWithImgSize:(CGSize)imgSize;
  63. /// 获取模糊效果
  64. /// @param image 要模糊的图片
  65. /// @param blur 要模糊的程度 例如:9
  66. + (UIImage *)boxblurImage:(UIImage *)image withBlurNumber:(CGFloat)blur;
  67. /// GPUImage的开源库实现毛玻璃效果(比较吃内存,相对Core Image好一点)
  68. /// blurRadius一般10~30之间就可以满足需求
  69. + (UIImage *)GPUImageStyleWithImage:(UIImage *)image withBlurRadius:(CGFloat)blurRadius;
  70. /// 修改图片颜色
  71. - (UIImage*)imageChangeColor:(UIColor*)color;
  72. // 以图片中心为中心,以最小边为边长,裁剪正方形图片
  73. + (UIImage *)cropSquareImage:(UIImage *)image;
  74. // 以图片中心为中心,以最小边为边长,裁剪圆形图片
  75. + (UIImage *)imageWithClipImage:(UIImage *)image;
  76. // 获取gif图
  77. + (UIImage *)animatedGIFNamed:(NSString *)name;
  78. + (UIImage *)animatedGIFWithData:(NSData *)data;
  79. /// 回去变灰图片
  80. +(UIImage *)getGrayImage:(UIImage*)oldImage;
  81. @end