目标 C:使用 UIImage 进行描边

Posted

技术标签:

【中文标题】目标 C:使用 UIImage 进行描边【英文标题】:Objective C: Using UIImage for Stroking 【发布时间】:2011-11-28 01:43:10 【问题描述】:

我正在尝试为我的画笔应用纹理,但我真的很难弄清楚它是如何完成的。

这是我输出的图像。

我使用了一个 UIImage,它只跟随屏幕上的触摸,但是当我更快地滑动它时,结果在右侧“W”,而在左侧,当我慢速滑动时,结果是。

我尝试使用CGContextMoveToPointCGContextAddLineToPoint 我不知道如何应用纹理。

是否可以将 UIImage 用于笔触纹理?

这是我的代码

    UIImage * brushImageTexture = [UIImage imageNamed:@"brushImage.png"]; 
    [brushImagetexture drawAtPoint:CGPointMake(touchCurrentPosition.x, touchVurrentPosition.y) blendMode:blendMode alpha:1.0f];

【问题讨论】:

嗨@SeongHo,我在按照你的意愿绘画时遇到了一些问题。我无法绘制纹理,即使是您在上面发布的图像中的纹理。我已经在链接***.com/questions/11390079/… 中发布了我的问题,解释了我的问题。认为你可以解决它。你能帮我找出我的代码有什么问题吗?请帮助我使用CoreGraphics 像画笔一样画画 【参考方案1】:

您需要在从前一点到当前点的直线上的每个点手动绘制图像。

CGPoint vector = CGPointMake(currentPosition.x - lastPosition.x, currentPosition.y - lastPosition.y);
CGFloat distance = hypotf(vector.x, vector.y);
vector.x /= distance;
vector.y /= distance;
for (CGFloat i = 0; i < distance; i += 1.0f) 
    CGPoint p = CGPointMake(lastPosition.x + i * vector.x, lastPosition.y + i * vector.y);
    [brushImageTexture drawAtPoint:p blendMode:blendMode alpha:1.0f];

【讨论】:

正是我所需要的,谢谢先生!你是一个很大的帮助!明天我学校项目的截止日期!非常感谢!

以上是关于目标 C:使用 UIImage 进行描边的主要内容,如果未能解决你的问题,请参考以下文章

如何在图像上写文字并保存

如何在 swift 3 中使用 UIImage 数组为零?

如何在目标 c 中将 PFFILE 设置为本地 UIImage

iOS:UIImage 缩放以填充 UIView

无法设置 UIImage,总是返回 nil

在swift中循环变量