Rah*_*yas 5 iphone core-graphics objective-c quartz-2d
我有一个视图与uiimageview我通过相机分配这个uiimageview图像..现在我想做一些绘图到图像....使用coregraphics.i希望做这样的事情...通过触摸和绘制线选择一个区域时line加入像圆圈或任何形状的东西..我想将那个特定区域更改为其他东西,例如更改颜色.将其转换为灰度..直到现在我能画线...这里是一个线条的图像绘制在uiimage视图上...
替代文字http://i29.tinypic.com/x5quc6.png
但我无法弄明白我如何在imageview的图像绘制..如何修改imageview的图像???
我还想在点击清除按钮或类似撤消之类的时候恢复图像.有人知道如何实现这一点吗?
和
如何在单击裁剪按钮时创建矩形在矩阵的任何位置移动矩形...然后按下按钮裁剪图像...然后保存裁剪的图像..
这些是步骤:
这是一个获取图像的方法,在它上面绘制一些东西并返回一个带有修改内容的新UIImage:
- (UIImage*)modifiedImageWithImage:(UIImage*)uiImage
{
// build context to draw in
CGImageRef image = uiImage.CGImage;
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGContextRef ctx = CGBitmapContextCreate(NULL,
CGImageGetWidth(image), CGImageGetHeight(image),
8, CGImageGetWidth(image) * 4,
colorspace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(colorspace);
// draw original image
CGRect r = CGRectMake(0, 0, CGImageGetWidth(image), CGImageGetHeight(image));
CGContextSetBlendMode(ctx, kCGBlendModeCopy);
CGContextDrawImage(ctx, r, image);
CGContextSetBlendMode(ctx, kCGBlendModeNormal);
// draw something
CGContextAddEllipseInRect(ctx, CGRectInset(r, 10, 10));
CGContextSetRGBStrokeColor(ctx, 1.0f, 1.0f, 1.0f, 0.5f);
CGContextSetLineWidth(ctx, 16.0f);
CGContextDrawPath(ctx, kCGPathStroke);
CGContextAddEllipseInRect(ctx, CGRectInset(r, 10, 10));
CGContextSetRGBStrokeColor(ctx, 0.7f, 0.0f, 0.0f, 1.0f);
CGContextSetLineWidth(ctx, 4.0f);
CGContextDrawPath(ctx, kCGPathStroke);
// create resulting image
image = CGBitmapContextCreateImage(ctx);
UIImage* newImage = [[[UIImage alloc] initWithCGImage:image] autorelease];
CGImageRelease(image);
CGContextRelease(ctx);
return newImage;
}
Run Code Online (Sandbox Code Playgroud)
要恢复旧图像,只需保留对它的引用.
裁剪的东西与上面的内容无关,你应该为此创建一个新的问题.