Tag: 核心graphics

撤销CGLayer的重做问题

我正在与CgLayer上的unodo重做操作,我已经尝试了一些代码,但不能够得到它的工作,不知道,我在哪里出错,下面是我的代码,我已经写 这是我的drawRect函数 – (void)drawRect:(CGRect)rect { m_backgroundImage = [UIImage imageNamed:@"bridge.jpg"]; CGPoint drawingTargetPoint = CGPointMake(0,0); [m_backgroundImage drawAtPoint:drawingTargetPoint]; switch(drawStep) { case DRAW: { CGContextRef context = UIGraphicsGetCurrentContext(); if(myLayerRef == nil) { myLayerRef = CGLayerCreateWithContext(context, self.bounds.size, NULL); } CGContextDrawLayerAtPoint(context, CGPointZero, myLayerRef); break; } case UNDO: { [curImage drawInRect:self.bounds]; break; } default: break; } } 在触摸结束时,我将图层转换为NSValue并存储为keyValue对NSDictionary,然后将字典对象添加到数组。 – (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent […]

使用CGContextDrawImage旋转图像

我怎样才能旋转CGContextDrawImage()在其中心绘制的图像? 在drawRect: CGContextSaveGState(c); rect = CGRectOffset(rect, -rect.size.width / 2, -rect.size.height / 2); CGContextRotateCTM(c, angle); CGContextDrawImage(c, rect, doodad.CGImage); CGContextRotateCTM(c, -angle); CGContextTranslateCTM(c, pt.x, pt.y); prevRect = rect; CGContextRestoreGState(c); 我在原点绘制图像,并在其中心旋转,然后转换到应绘制的位置。 不工作。

这个代码是在点还是像素级绘制的? 如何绘制视网膜像素?

考虑这个绘制(循环)渐变的令人钦佩的脚本, https://github.com/paiv/AngleGradientLayer/blob/master/AngleGradient/AngleGradientLayer.m int w = CGRectGetWidth(rect); int h = CGRectGetHeight(rect); 接着 angleGradient(data, w, h .. 它循环所有这些 for (int y = 0; y < h; y++) for (int x = 0; x < w; x++) { 基本上设置颜色 *p++ = color; 但等等 – 这不是由点,而不是像素 ? 真的,你会如何画密集屏幕上的物理像素? 这是一个问题: 假设设备上的密度是4。 就像在上面的代码中绘制一样,但是,在一个四倍大的位图上,然后把它放在矩形中? 这似乎是凌乱 – 但是呢?

iPhone:如何改变UIImage的特定像素的颜色?

我有一个UIImage,我想改变它的特定像素的颜色,比如224 x 200像素。 我怎样才能做到这一点? 这甚至有可能吗? 提前致谢。

CGContextSetFillColorWithColor:无效的上下文0x0

CGContextSetFillColorWithColor:无效的上下文0x0。 这是一个严重的错误。 此应用程序或其使用的库使用的是无效上下文,从而导致系统稳定性和可靠性的整体降级。 这个通知是礼貌的:请解决这个问题。 这将是即将到来的更新中的致命错误。 我得到这个方法的[color setFill]行的错误。 任何想法如何我可以解决它? + (UIImage *)fillImage:(UIImage*)image withColor:(UIColor *)color { // begin a new image context, to draw our colored image onto UIGraphicsBeginImageContextWithOptions(image.size, NO, [[UIScreen mainScreen] scale]); // get a reference to that context we created CGContextRef context = UIGraphicsGetCurrentContext(); // set the fill color [color setFill]; // translate/flip the graphics […]

在与中心点相交的给定angular度的直线相交的UIView矩形上查找CGPoint

在iOS中,我试图确定一个矩形上的点,该矩形以预定angular度从中心点到矩形的边界的假想线相交。 说我知道中心点,矩形的大小和angular度(从东经0度开始,再向北逆时针经过90度,向东逆时针经过90度,西经180度,南经360度)。 我需要知道相交点的坐标。 对于给定angular度的矩形上的查找点,有点令人困惑的(对我来说)math的,但可能是准确的答案导致我尝试下面的代码,但它不能正常工作。 这个问题类似于那个,但我正在寻找一个更正的Objective-C / iOS方法,而不是一般的math响应。 我认为代码问题的一部分与使用单个0到360度angular度(弧度不可能有负数)input有关,但可能还有其他问题。 下面的代码主要使用belisarius的答案中定义的符号,包括我为在这里定义的四个区域中的每一个计算相交点的尝试。 这段代码在我的UIImageView子类中: – (CGPoint) startingPointGivenAngleInDegrees:(double)angle { double angleInRads = angle/180.0*M_PI; float height = self.frame.size.height; float width = self.frame.size.width; float x0 = self.center.x; float y0 = self.center.y; // region 1 if (angleInRads >= -atan2(height, width) && angleInRads <= atan2(height, width)) { return CGPointMake(x0 + width/2, y0 + width/2 […]

iOS在drawRect中反转蒙版

用下面的代码,我成功地遮住了我的绘图的一部分,但这是我想要的蒙版的反面。 这掩盖了绘图的内部部分,我想掩盖外部。 有没有简单的方法来颠倒这个面具? 下面的myPath是一个UIBezierPath 。 CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; CGMutablePathRef maskPath = CGPathCreateMutable(); CGPathAddPath(maskPath, nil, myPath.CGPath); [maskLayer setPath:maskPath]; CGPathRelease(maskPath); self.layer.mask = maskLayer;

淡出滚动UITextView的图像?

我正在寻找在背景图像上淡出滚动的UITextView ,类似于这个小例子顶部的渐变。 我正在试图找出如何使用CAGradientLayer和蒙版来实现这一点。 当视图中的文本(垂直)滚动时,我需要文本在它碰到视图的框架之前变得透明,从而给出它向上和向下淡出的错觉。 有关如何实现这一目标的任何提示?

以编程方式绘制iOS 7风格的圆形

我试图find一种方法来使用核心graphics以编程方式绘制iOS 7样式图标“squircle”形状。 我不问如何绘制一个圆angular的矩形 。 一个圆形是一个超椭圆: 与常规的圆angular矩形略有不同: 这是确切的公式是容易获得的 。 然而,我不知道如何使用,例如,一个CGPath,更不用说填充它,并能够相当容易地调整它。 所有这一切与公式完全一致。 任何想法?

用animation添加UIAlertVIew子视图,具有弹跳效果

如何在iOS中添加子视图时popup或popup风格的animation? 我需要类似于UIAlertView外观样式的东西。 我知道有几种方法可以做同样的事情,但我更喜欢使用基本的[UIView animateWithDuration: …]; 在这里阻止,所以我可以得到一些关于我应该在这里使用popup效果的transform帮助? 谢谢