老师麻烦看一下 调试不出来 代码如下
-(void)drawimage{
//先将图片读取进来
UIImage * image1 = [UIImage imageNamed:@"3.jpeg"];
//创建图片的宽高 size_t是一种数据类型 类似于 int float
size_t width = 150;
size_t height = 200;
//每一行元素有多少个字节 字节数=当前宽度x4
//4是指每个像素由R+G+B+alpha四个元素构成
//所以整个图片宽度x4表明每一行占有的字节数
size_t byteperrow=width = width*4;
//获取当前透明度 CGImageAlphaInfo透明度属性
CGImageAlphaInfo alpha = kCGImageAlphaPremultipliedFirst;
//配置图层的上下文参数
//创建图层上下文 width,height当前图片的宽度和高度 8当前图片每一个像素点8bit=1Byte字节
//byteperrow每行字节数 CGColorSpaceCreateDeviceRGB颜色空间
//kCGBitmapByteOrderDefault当前字节的默认排序(RGB BGR之类的)
//alpha context1图层的透明度 |或
CGContextRef context1 = CGBitmapContextCreate(NULL, width, height, 8, byteperrow, CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrderDefault|alpha);
//渲染上下文
//context1上下文 CGRectMake绘制的区间范围 image1当前图片内容(读取进来的image)
CGContextDrawImage(context1, CGRectMake(0, 0, width, height), image1.CGImage);
//完成旋转动作
//将当前绘制内容转化成 UInt8的形式 UInt8数据对象
UInt8 *data = (UInt8*)CGBitmapContextGetData(context1);
//创建参数 vImage_Buffer表明原来的数据空间
vImage_Buffer src ={data,height,width,byteperrow};
vImage_Buffer dest ={data,height,width,byteperrow};//目标
//当前像素 创建颜色空间 表示没有颜色
Pixel_8888 bgColor ={0,0,0,0};
//旋转的方法 拿到旋转后的数据才能进行旋转操作
//M_PI旋转角度 bgColor当前颜色 kvImageBackgroundColorFill填充当前背景颜色
vImageRotate_ARGB8888(&src, &dest, NULL, M_PI, bgColor, kvImageBackgroundColorFill);
//拿到当前图片
//CGImageRef像素位图 创建像素位图
CGImageRef imgref = CGBitmapContextCreateImage(context1);
//将图片转化成UIimage形式 orientation图片方向 scale缩放属性 imageOrientation原始方向
UIImage *imagenew = [UIImage imageWithCGImage:imgref scale:0.5 orientation:image1.imageOrientation];
//渲染
[imagenew drawAtPoint:CGPointMake(100, 100)];
}
正在回答 回答被采纳积分+1
- 参与学习 1337 人
- 提交作业 712 份
- 解答问题 1878 个
很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星