图片处理 旋转 平铺 , 截取

有时候我们需要处理图片,比如改变大小,旋转,截取等等,所以今天说一说图片处理相关的一些操作。
本文所说的方法都是写在UIImage的Category中,这样使用起来也方便;由于代码太多,这里就不贴具体实现代码了,大家可以去我的Github查看demo,效果如下:

颜色相关

1.根据颜色生成纯色图片
就是根据制定的颜色生成一张纯色的图片


1

+ (UIImage *)imageWithColor:(UIColor *)color;

使用方法,比如设置UIImageView的图片为红色纯图片:


1

self.imageView.image = [UIImage imageWithColor:[UIColor redColor]];

2.取图片上某一像素的颜色
有时候我们需要获取图片上的某一点的颜色,比如画板应用选择画笔颜色的时候,其实是在一张有所有颜色的图片上点击选择实现的。
需要注意的是这里要传的参数point是相对于图片上的点。


1

- (UIColor *)colorAtPixel:(CGPoint)point;

使用方法,比如我们在图片上加个tap手势,然后在响应方法里面这样写就可以了:


1

2

3

- (void)handleTap:(UITapGestureRecognizer *)tap

{    CGPoint point = [tap locationInView:tap.view];    UIImage *image = self.imageView.image;    CGPoint pointInImage = CGPointMake(point.x * image.size.width / self.imageView.frame.size.width, point.y * image.size.height / self.imageView.frame.size.height);    self.view.backgroundColor = [image colorAtPixel:pointInImage];

}

3.获得灰度图 
获取一张彩色图片的黑白图片


1

- (UIImage *)convertToGrayImage;

使用方法:


1

self.imageView.image = [image convertToGrayImage];

旋转相关

1.纠正图片的方向
当我们需要读取相册的图片,发现相册里面的方向和展示出来的图片的方向不一样,这时候就要矫正方向了。


1

- (UIImage *)fixOrientation;

使用:


1

self.imageView.image = [image fixOrientation];

2.按给定的方向旋转图片
在做图片处理工具的时候,我们可能需要旋转图片。
这个方法的参数是系统枚举UIImageOrientation。


1

2

3

4

5

6

7

8

9

10

typedef NS_ENUM(NSInteger, UIImageOrientation) {    UIImageOrientationUp,            // default orientation

    UIImageOrientationDown,          // 180 deg rotation

    UIImageOrientationLeft,          // 90 deg CCW

    UIImageOrientationRight,         // 90 deg CW

    UIImageOrientationUpMirrored,    // as above but image mirrored along other axis. horizontal flip

    UIImageOrientationDownMirrored,  // horizontal flip

    UIImageOrientationLeftMirrored,  // vertical flip

    UIImageOrientationRightMirrored, // vertical flip};

- (UIImage*)rotate:(UIImageOrientation)orient;

使用,比如顺时针旋转180度:


1

self.imageView.image = [image rotate:UIImageOrientationDown];

3.垂直翻转
其实就是上面的方法传UIImageOrientationDownMirrored参数。


1

- (UIImage *)flipVertical;

4.水平翻转
其实就是传UIImageOrientationUpMirrored参数。


1

- (UIImage *)flipHorizontal;

5.将图片旋转degrees角度
传入一个自定义的角度。


1

- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees;

6.将图片旋转radians弧度


1

- (UIImage *)imageRotatedByRadians:(CGFloat)radians;

生成图相关

1.截取image对象rect区域内的图像


1

- (UIImage *)subImageWithRect:(CGRect)rect;

2.压缩图片至指定尺寸


1

- (UIImage *)rescaleImageToSize:(CGSize)size;

3.压缩图片至指定像素


1

- (UIImage *)rescaleImageToPX:(CGFloat )toPX;

4.生成一个size大小的平铺图片


1

- (UIImage *)getTiledImageWithSize:(CGSize)size;

5..UIView转化为UIImage


1

+ (UIImage *)imageFromView:(UIView *)view;

6.将两个图片生成一张图片
firstImage在下面,secondImage在上面


1

+ (UIImage*)mergeImage:(UIImage*)firstImage withImage:(UIImage*)secondImage;

Gif相关

将一个Gif直接设置为UIImageView的image就可以显示动态图了。


1

/** 用一个Gif生成UIImage,传入一个GIFData */+ (UIImage *)animatedImageWithAnimatedGIFData:(NSData *)theData;/** 用一个Gif生成UIImage,传入一个GIF路径 */+ (UIImage *)animatedImageWithAnimatedGIFURL:(NSURL *)theURL;

使用:


1

NSString *path = [[NSBundle mainBundle] pathForResource:@"gif" ofType:@"gif"];self.imageView.image = [UIImage animatedImageWithAnimatedGIFURL:[NSURL fileURLWithPath:path]];//或者self.imageView.image = [UIImage animatedImageWithAnimatedGIFData:[NSData dataWithContentsOfFile:path]];

 

时间: 2024-10-29 08:37:46

图片处理 旋转 平铺 , 截取的相关文章

php 给图片增加背景平铺水印代码

如果你想利用php 给图片增加背景平铺水印效果话,必须利用php的一个插件来实例,就是利用imagick,他可以给图片增加背景平铺水印效果哦,下面我们提供一款实例代码. 如果你想利用php教程 给图片增加背景平铺水印效果话,必须利用php的一个插件来实例,就是利用imagick,他可以给图片增加背景平铺水印效果哦,下面我们提供一款实例代码. imagemagic官方去除图片背景的命令行模式: convert -size 140x80 xc:none -fill grey           -g

android 图片水平重复平铺(repeat x)

<=用来重复显示的图 1.最简单方式 创建wave_repeat.xml <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/wave" android:tileMode="repeat&q

2018.12.7边界圆角redius,背景图设置,平铺,精灵图,盒子伪类索引

一选择器复习 <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>复习预习</title></head><body> 复习预习 <!-- 1.组合选择器 --> <!-- 群组选择器: div, #div, .div { 该样式块同时控制多个(div, #div, .div) } 每一个选择器位均可以为基础选择

UIImage图片处理,旋转、截取、平铺、缩放等操作

有时候我们需要处理图片,比如改变大小,旋转,截取等等,所以今天说一说图片处理相关的一些操作.本文所说的方法都是写在UIImage的Category中,这样使用起来也方便:由于代码太多,这里就不贴具体实现代码了,大家可以去我的Github查看demo,效果如下: 颜色相关 1.根据颜色生成纯色图片就是根据制定的颜色生成一张纯色的图片 1 + (UIImage *)imageWithColor:(UIColor *)color; 使用方法,比如设置UIImageView的图片为红色纯图片: 1 se

[ATL/WTL]_[CBitmap复制图片-截取图片-平铺图片]

场景: 1.当你需要截取图片部分区域作为某个控件的背景. 2.需要平铺图片到一个大区域让他自动放大时. 3.或者需要合并图片时. 代码: CDC sdc; CDC ddc; sdc.CreateCompatibleDC(NULL); ddc.CreateCompatibleDC(NULL); CBitmap destBmp; destBmp.CreateCompatibleBitmap(CClientDC(NULL),width,height); sdc.SelectBitmap(m_Bitma

[ATL/WTL]_[0基础]_[CBitmap复制图片-截取图片-平铺图片]

场景: 1.当你须要截取图片部分区域作为某个控件的背景. 2.须要平铺图片到一个大区域让他自己主动放大时. 3.或者须要合并图片时. 代码: CDC sdc; CDC ddc; sdc.CreateCompatibleDC(NULL); ddc.CreateCompatibleDC(NULL); CBitmap destBmp; destBmp.CreateCompatibleBitmap(CClientDC(NULL),width,height); sdc.SelectBitmap(m_Bit

java给图片添加图片水印,设置样式平铺,拉伸

import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageUtil { /** * 给图片添加水印 * @param originImgPath 原始图片的路径 * @param targetImgPath 添加水印后图片的保存路径 * @param

如何通过CSS实现背景图片自动平铺或拉伸至整个屏幕(自适应大小)

默认情况下,通过HTML代码的BODY标签设置好背景图片<body background="x.jpg"> 后,图片会自动横向和纵向平铺.这就会产生一些美观上的问题. XP人提供CSS代码如下,放在页面头部即可,仅供参考: <style type="text/css"> body { background:url(/img/background.png); background-repeat: repeat-x; background-pos

Android: 背景图片平铺要这么干

<?xml version="1.0" encoding="utf-8"?>  <bitmap xmlns:android="http://schemas.android.com/apk/res/android"    android:src="@drawable/bg_header"      android:tileMode="repeat" >  </bitmap>